Skip to content

Commit

Permalink
Added test cases for devtool
Browse files Browse the repository at this point in the history
Signed-off-by: shiv12095 <shiv12095@iiitd.ac.in>
  • Loading branch information
shiv12095 committed Aug 16, 2016
1 parent b71e257 commit 657304a
Show file tree
Hide file tree
Showing 8 changed files with 148 additions and 19 deletions.
19 changes: 19 additions & 0 deletions server/devtool/pom.xml
Expand Up @@ -195,5 +195,24 @@
<artifactId>angular-smart-table</artifactId>
<version>2.1.6</version>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>


</dependencies>
</project>
Expand Up @@ -7,11 +7,6 @@
import org.eclipse.vorto.http.model.ModelId;
import org.eclipse.vorto.http.model.ModelResource;

/**
*
* @author shiv
*
*/
public interface IInformationModelEditorService {

String linkFunctionBlockToInformationModel(String infoModelResourceId, ModelId functionBlockModelId, ResourceSet resourceSet,
Expand Down
Expand Up @@ -12,19 +12,19 @@
import org.eclipse.vorto.http.model.ModelId;
import org.eclipse.vorto.http.model.ModelResource;
import org.eclipse.vorto.server.devtool.service.IFunctionBlockEditorService;
import org.eclipse.vorto.server.devtool.utils.InformationModelEditorReferenceLinker;
import org.eclipse.vorto.server.devtool.utils.InformationModelEditorRestClient;
import org.eclipse.vorto.server.devtool.utils.DevtoolReferenceLinker;
import org.eclipse.vorto.server.devtool.utils.DevtoolRestClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class FunctionBlockEditorServiceImpl implements IFunctionBlockEditorService {

@Autowired
InformationModelEditorRestClient informationModelEditorRestClient;
DevtoolRestClient devtoolRestClient;

@Autowired
InformationModelEditorReferenceLinker infomrationModelRefernceLinker;
DevtoolReferenceLinker infomrationModelRefernceLinker;

@Override
public String linkDatatypeToFunctionBlock(String functionBlockResourceId, ModelId datatypeModelId,
Expand All @@ -49,7 +49,7 @@ public List<ModelResource> searchDataTypeByExpression(String expression) {

private List<ModelResource> searchModelByExpressionAndValidate(String expression,
org.eclipse.vorto.http.model.ModelType modelType) {
List<ModelResource> resourceList = informationModelEditorRestClient.searchByExpression(expression);
List<ModelResource> resourceList = devtoolRestClient.searchByExpression(expression);
ArrayList<ModelResource> modelResourceList = new ArrayList<ModelResource>();
for (ModelResource modelResource : resourceList) {
if (modelResource.getModelType().equals(modelType)) {
Expand Down
Expand Up @@ -12,24 +12,24 @@
import org.eclipse.vorto.http.model.ModelId;
import org.eclipse.vorto.http.model.ModelResource;
import org.eclipse.vorto.server.devtool.service.IInformationModelEditorService;
import org.eclipse.vorto.server.devtool.utils.InformationModelEditorReferenceLinker;
import org.eclipse.vorto.server.devtool.utils.InformationModelEditorRestClient;
import org.eclipse.vorto.server.devtool.utils.DevtoolReferenceLinker;
import org.eclipse.vorto.server.devtool.utils.DevtoolRestClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class InformationModelEditorServiceImpl implements IInformationModelEditorService {

@Autowired
InformationModelEditorRestClient informationModelEditorRestClient;
DevtoolRestClient devtoolRestClient;

@Autowired
InformationModelEditorReferenceLinker infomrationModelRefernceLinker;
DevtoolReferenceLinker devtoolReferenceLinker;

@Override
public String linkFunctionBlockToInformationModel(String infoModelResourceId, ModelId functionBlockModelId,
ResourceSet resourceSet, Set<String> referencedResourceSet) {
infomrationModelRefernceLinker.linkFunctionBlockToInfoModel(infoModelResourceId, functionBlockModelId,
devtoolReferenceLinker.linkFunctionBlockToInfoModel(infoModelResourceId, functionBlockModelId,
resourceSet, referencedResourceSet);
Resource infoModelResource = resourceSet.getResource(URI.createURI(infoModelResourceId), true);
try {
Expand All @@ -48,7 +48,7 @@ public List<ModelResource> searchFunctionBlockByExpression(String expression) {

private List<ModelResource> searchModelByExpressionAndValidate(String expression,
org.eclipse.vorto.http.model.ModelType modelType) {
List<ModelResource> resourceList = informationModelEditorRestClient.searchByExpression(expression);
List<ModelResource> resourceList = devtoolRestClient.searchByExpression(expression);
ArrayList<ModelResource> modelResourceList = new ArrayList<ModelResource>();
for (ModelResource modelResource : resourceList) {
if (modelResource.getModelType().equals(modelType)) {
Expand Down
Expand Up @@ -23,10 +23,10 @@
import org.springframework.stereotype.Component;

@Component
public class InformationModelEditorReferenceLinker {
public class DevtoolReferenceLinker {

@Autowired
InformationModelEditorRestClient informationModelEditorRestClient;
DevtoolRestClient informationModelEditorRestClient;

public void linkFunctionBlockToInfoModel(String infoModelResourceId, ModelId functionBlockModelId,
ResourceSet resourceSet, Set<String> referencedResourceSet) {
Expand Down
Expand Up @@ -22,7 +22,7 @@
import com.google.gson.reflect.TypeToken;

@Component
public class InformationModelEditorRestClient {
public class DevtoolRestClient {

@Value("${vorto.repository.rest.path}")
private String basePath;
Expand Down
@@ -0,0 +1,59 @@
package org.eclipse.vorto.server.devtool.service;

import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.when;

import org.eclipse.vorto.editor.web.resource.WebEditorResourceSetProvider;
import org.eclipse.vorto.server.devtool.exception.ProjectAlreadyExistsException;
import org.eclipse.vorto.server.devtool.exception.ProjectNotFoundException;
import org.eclipse.vorto.server.devtool.service.impl.ProjectRepositoryServiceImpl;
import org.eclipse.xtext.web.server.model.IWebResourceSetProvider;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import com.google.inject.Injector;

public class ProjectRepositoryServiceTest {

@InjectMocks
private IProjectRepositoryService projectRepositoryService = new ProjectRepositoryServiceImpl();

@Mock
private IProjectRespositoryDAO projectRespositoryDAO;

@Mock
private Injector injector;

@Mock
private WebEditorResourceSetProvider webEditorResourceSetProvider;

private String sessionId = "sessionId";
private String projectName = "Project";

@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}

@Test(expected = ProjectAlreadyExistsException.class)
public void checkProjectExistsTest() throws ProjectAlreadyExistsException{
when(injector.getInstance(IWebResourceSetProvider.class)).thenReturn(webEditorResourceSetProvider);
when(projectRespositoryDAO.projectExists(projectName, sessionId)).thenReturn(true);
projectRepositoryService.createProject(sessionId, projectName);
}

@Test(expected = ProjectNotFoundException.class)
public void openNonExistantProjectTest() throws ProjectNotFoundException{
when(projectRespositoryDAO.openProject(projectName, sessionId)).thenReturn(null);
projectRepositoryService.openProject(sessionId, projectName);
}

@Test
public void getProjectListTest() throws ProjectNotFoundException{
assertNotNull(projectRepositoryService.getProjects(sessionId));
}

}
@@ -0,0 +1,56 @@
package org.eclipse.vorto.server.devtool.service.impl;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

import org.eclipse.vorto.server.devtool.models.Project;
import org.junit.Test;
import org.mockito.InjectMocks;

public class ProjectRepositoryDAOTest {

@InjectMocks
private MapProjectRespositoryDAOImpl projectRepositoryDAO = new MapProjectRespositoryDAOImpl();

private String sessionId = "sessionId";
private String projectName = "Project";

@Test
public void uniqueProjectNameTest(){
Project project1 = new Project(projectName);
projectRepositoryDAO.createProject(project1, sessionId);
assertEquals(1, projectRepositoryDAO.getProjects(sessionId).size());
Project project2 = new Project(projectName);
projectRepositoryDAO.createProject(project2, sessionId);
assertEquals(1, projectRepositoryDAO.getProjects(sessionId).size());
}

@Test
public void checkProjectExistsTest(){
Project project1 = new Project(projectName);
projectRepositoryDAO.createProject(project1, sessionId);
assertTrue(projectRepositoryDAO.projectExists(projectName, sessionId));
assertFalse(projectRepositoryDAO.projectExists(Long.toString(System.currentTimeMillis()), sessionId));
}


@Test
public void openProjectTest(){
Project project1 = new Project(projectName);
projectRepositoryDAO.createProject(project1, sessionId);
assertNotNull(projectRepositoryDAO.openProject(projectName, sessionId));
assertNull((projectRepositoryDAO.openProject(Long.toString(System.currentTimeMillis()), sessionId)));
}

@Test
public void getProjectsTest(){
Project project1 = new Project(projectName);
projectRepositoryDAO.createProject(project1, sessionId);
assertEquals(1, projectRepositoryDAO.getProjects(sessionId).size());
assertEquals(projectName, projectRepositoryDAO.getProjects(sessionId).get(0).getProjectName());
}

}

0 comments on commit 657304a

Please sign in to comment.