Create new filter options for maps
- Add new filter property for target - Add new filter property for software module - Add new filter property for distribution set Signed-off-by: SirWayne <dennis.melzer@bosch-si.com>
This commit is contained in:
@@ -92,8 +92,6 @@ public class DistributionSetResource {
|
||||
@Autowired
|
||||
private DistributionSetManagement distributionSetManagement;
|
||||
|
||||
@Autowired
|
||||
private EntityManager entityManager;
|
||||
|
||||
/**
|
||||
* Handles the GET request of retrieving all {@link DistributionSet}s within
|
||||
@@ -130,7 +128,7 @@ public class DistributionSetResource {
|
||||
final Page<DistributionSet> findDsPage;
|
||||
if (rsqlParam != null) {
|
||||
findDsPage = distributionSetManagement.findDistributionSetsAll(
|
||||
RSQLUtility.parse(rsqlParam, DistributionSetFields.class, entityManager), pageable, false);
|
||||
RSQLUtility.parse(rsqlParam, DistributionSetFields.class), pageable, false);
|
||||
} else {
|
||||
findDsPage = distributionSetManagement.findDistributionSetsAll(pageable, false, null);
|
||||
}
|
||||
@@ -281,7 +279,7 @@ public class DistributionSetResource {
|
||||
final Page<Target> targetsAssignedDS;
|
||||
if (rsqlParam != null) {
|
||||
targetsAssignedDS = targetManagement.findTargetByAssignedDistributionSet(distributionSetId,
|
||||
RSQLUtility.parse(rsqlParam, TargetFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, TargetFields.class), pageable);
|
||||
} else {
|
||||
targetsAssignedDS = targetManagement.findTargetByAssignedDistributionSet(distributionSetId, pageable);
|
||||
}
|
||||
@@ -331,7 +329,7 @@ public class DistributionSetResource {
|
||||
final Page<Target> targetsInstalledDS;
|
||||
if (rsqlParam != null) {
|
||||
targetsInstalledDS = targetManagement.findTargetByInstalledDistributionSet(distributionSetId,
|
||||
RSQLUtility.parse(rsqlParam, TargetFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, TargetFields.class), pageable);
|
||||
} else {
|
||||
targetsInstalledDS = targetManagement.findTargetByInstalledDistributionSet(distributionSetId, pageable);
|
||||
}
|
||||
@@ -410,7 +408,7 @@ public class DistributionSetResource {
|
||||
|
||||
if (rsqlParam != null) {
|
||||
metaDataPage = distributionSetManagement.findDistributionSetMetadataByDistributionSetId(distributionSetId,
|
||||
RSQLUtility.parse(rsqlParam, DistributionSetMetadataFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, DistributionSetMetadataFields.class), pageable);
|
||||
} else {
|
||||
metaDataPage = distributionSetManagement.findDistributionSetMetadataByDistributionSetId(distributionSetId,
|
||||
pageable);
|
||||
|
||||
@@ -60,8 +60,6 @@ public class DistributionSetTagResource {
|
||||
@Autowired
|
||||
private DistributionSetManagement distributionSetManagement;
|
||||
|
||||
@Autowired
|
||||
private EntityManager entityManager;
|
||||
|
||||
/**
|
||||
* Handles the GET request of retrieving all DistributionSet tags.
|
||||
@@ -103,7 +101,7 @@ public class DistributionSetTagResource {
|
||||
|
||||
} else {
|
||||
final Page<DistributionSetTag> findTargetPage = tagManagement.findAllDistributionSetTags(
|
||||
RSQLUtility.parse(rsqlParam, TagFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, TagFields.class), pageable);
|
||||
countTargetsAll = findTargetPage.getTotalElements();
|
||||
findTargetsAll = findTargetPage;
|
||||
|
||||
|
||||
@@ -62,9 +62,6 @@ public class DistributionSetTypeResource {
|
||||
@Autowired
|
||||
private DistributionSetManagement distributionSetManagement;
|
||||
|
||||
@Autowired
|
||||
private EntityManager entityManager;
|
||||
|
||||
/**
|
||||
* Handles the GET request of retrieving all {@link DistributionSetType}s
|
||||
* within SP.
|
||||
@@ -105,7 +102,7 @@ public class DistributionSetTypeResource {
|
||||
Long countModulesAll;
|
||||
if (rsqlParam != null) {
|
||||
findModuleTypessAll = distributionSetManagement.findDistributionSetTypesByPredicate(
|
||||
RSQLUtility.parse(rsqlParam, DistributionSetTypeFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, DistributionSetTypeFields.class), pageable);
|
||||
countModulesAll = ((Page<DistributionSetType>) findModuleTypessAll).getTotalElements();
|
||||
} else {
|
||||
findModuleTypessAll = distributionSetManagement.findDistributionSetTypesAll(pageable);
|
||||
|
||||
@@ -11,7 +11,6 @@ package org.eclipse.hawkbit.rest.resource;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@@ -75,9 +74,6 @@ public class SoftwareModuleResource {
|
||||
@Autowired
|
||||
private SoftwareManagement softwareManagement;
|
||||
|
||||
@Autowired
|
||||
private EntityManager entityManager;
|
||||
|
||||
/**
|
||||
* Handles POST request for artifact upload.
|
||||
*
|
||||
@@ -266,7 +262,7 @@ public class SoftwareModuleResource {
|
||||
Long countModulesAll;
|
||||
if (rsqlParam != null) {
|
||||
findModulesAll = softwareManagement.findSoftwareModulesByPredicate(
|
||||
RSQLUtility.parse(rsqlParam, SoftwareModuleFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, SoftwareModuleFields.class), pageable);
|
||||
countModulesAll = ((Page<SoftwareModule>) findModulesAll).getTotalElements();
|
||||
} else {
|
||||
findModulesAll = softwareManagement.findSoftwareModulesAll(pageable);
|
||||
@@ -307,8 +303,8 @@ public class SoftwareModuleResource {
|
||||
* failure the JsonResponseExceptionHandler is handling the
|
||||
* response.
|
||||
*/
|
||||
@RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json",
|
||||
MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
|
||||
@RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = {
|
||||
"application/hal+json", MediaType.APPLICATION_JSON_VALUE })
|
||||
public ResponseEntity<SoftwareModulesRest> createSoftwareModules(
|
||||
@RequestBody final List<SoftwareModuleRequestBodyPost> softwareModules) {
|
||||
LOG.debug("creating {} softwareModules", softwareModules.size());
|
||||
@@ -387,7 +383,8 @@ public class SoftwareModuleResource {
|
||||
*/
|
||||
@RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata", produces = {
|
||||
MediaType.APPLICATION_JSON_VALUE, "application/hal+json" })
|
||||
public ResponseEntity<MetadataRestPageList> getMetadata(@PathVariable final Long softwareModuleId,
|
||||
public ResponseEntity<MetadataRestPageList> getMetadata(
|
||||
@PathVariable final Long softwareModuleId,
|
||||
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam,
|
||||
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam,
|
||||
@RequestParam(value = RestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam,
|
||||
@@ -405,15 +402,13 @@ public class SoftwareModuleResource {
|
||||
|
||||
if (rsqlParam != null) {
|
||||
metaDataPage = softwareManagement.findSoftwareModuleMetadataBySoftwareModuleId(softwareModuleId,
|
||||
RSQLUtility.parse(rsqlParam, SoftwareModuleMetadataFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, SoftwareModuleMetadataFields.class), pageable);
|
||||
} else {
|
||||
metaDataPage = softwareManagement.findSoftwareModuleMetadataBySoftwareModuleId(softwareModuleId, pageable);
|
||||
}
|
||||
|
||||
return new ResponseEntity<>(
|
||||
new MetadataRestPageList(SoftwareModuleMapper.toResponseSwMetadata(metaDataPage.getContent()),
|
||||
metaDataPage.getTotalElements()),
|
||||
HttpStatus.OK);
|
||||
return new ResponseEntity<>(new MetadataRestPageList(SoftwareModuleMapper.toResponseSwMetadata(metaDataPage
|
||||
.getContent()), metaDataPage.getTotalElements()), HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -426,8 +421,7 @@ public class SoftwareModuleResource {
|
||||
* @return status OK if get request is successful with the value of the meta
|
||||
* data
|
||||
*/
|
||||
@RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata/{metadataKey}", produces = {
|
||||
MediaType.APPLICATION_JSON_VALUE })
|
||||
@RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata/{metadataKey}", produces = { MediaType.APPLICATION_JSON_VALUE })
|
||||
public ResponseEntity<MetadataRest> getMetadataValue(@PathVariable final Long softwareModuleId,
|
||||
@PathVariable final String metadataKey) {
|
||||
// check if distribution set exists otherwise throw exception
|
||||
@@ -487,8 +481,8 @@ public class SoftwareModuleResource {
|
||||
* the created meta data
|
||||
*/
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/{softwareModuleId}/metadata", consumes = {
|
||||
MediaType.APPLICATION_JSON_VALUE,
|
||||
"application/hal+json" }, produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" })
|
||||
MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }, produces = { MediaType.APPLICATION_JSON_VALUE,
|
||||
"application/hal+json" })
|
||||
public ResponseEntity<List<MetadataRest>> createMetadata(@PathVariable final Long softwareModuleId,
|
||||
@RequestBody final List<MetadataRest> metadataRest) {
|
||||
// check if software module exists otherwise throw exception immediately
|
||||
@@ -501,8 +495,7 @@ public class SoftwareModuleResource {
|
||||
|
||||
}
|
||||
|
||||
private SoftwareModule findSoftwareModuleWithExceptionIfNotFound(final Long softwareModuleId,
|
||||
final Long artifactId) {
|
||||
private SoftwareModule findSoftwareModuleWithExceptionIfNotFound(final Long softwareModuleId, final Long artifactId) {
|
||||
final SoftwareModule module = softwareManagement.findSoftwareModuleById(softwareModuleId);
|
||||
if (module == null) {
|
||||
throw new EntityNotFoundException("SoftwareModule with Id {" + softwareModuleId + "} does not exist");
|
||||
|
||||
@@ -94,7 +94,7 @@ public class SoftwareModuleTypeResource {
|
||||
Long countModulesAll;
|
||||
if (rsqlParam != null) {
|
||||
findModuleTypessAll = softwareManagement.findSoftwareModuleTypesByPredicate(
|
||||
RSQLUtility.parse(rsqlParam, SoftwareModuleTypeFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, SoftwareModuleTypeFields.class), pageable);
|
||||
countModulesAll = ((Page<SoftwareModuleType>) findModuleTypessAll).getTotalElements();
|
||||
} else {
|
||||
findModuleTypessAll = softwareManagement.findSoftwareModuleTypesAll(pageable);
|
||||
|
||||
@@ -135,7 +135,7 @@ public class TargetResource {
|
||||
final Long countTargetsAll;
|
||||
if (rsqlParam != null) {
|
||||
final Page<Target> findTargetPage = targetManagement.findTargetsAll(
|
||||
RSQLUtility.parse(rsqlParam, TargetFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, TargetFields.class), pageable);
|
||||
countTargetsAll = findTargetPage.getTotalElements();
|
||||
findTargetsAll = findTargetPage;
|
||||
} else {
|
||||
@@ -284,7 +284,7 @@ public class TargetResource {
|
||||
final Slice<Action> activeActions;
|
||||
final Long totalActionCount;
|
||||
if (rsqlParam != null) {
|
||||
final Specification<Action> parse = RSQLUtility.parse(rsqlParam, ActionFields.class, entityManager);
|
||||
final Specification<Action> parse = RSQLUtility.parse(rsqlParam, ActionFields.class);
|
||||
activeActions = deploymentManagement.findActionsByTarget(parse, foundTarget, pageable);
|
||||
totalActionCount = deploymentManagement.countActionsByTarget(parse, foundTarget);
|
||||
} else {
|
||||
|
||||
@@ -103,7 +103,7 @@ public class TargetTagResource {
|
||||
|
||||
} else {
|
||||
final Page<TargetTag> findTargetPage = tagManagement.findAllTargetTags(
|
||||
RSQLUtility.parse(rsqlParam, TagFields.class, entityManager), pageable);
|
||||
RSQLUtility.parse(rsqlParam, TagFields.class), pageable);
|
||||
countTargetsAll = findTargetPage.getTotalElements();
|
||||
findTargetsAll = findTargetPage;
|
||||
|
||||
|
||||
@@ -12,14 +12,12 @@ import static org.junit.Assert.fail;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Expression;
|
||||
@@ -27,11 +25,11 @@ import javax.persistence.criteria.Path;
|
||||
import javax.persistence.criteria.Predicate;
|
||||
import javax.persistence.criteria.Root;
|
||||
import javax.persistence.metamodel.Attribute;
|
||||
import javax.persistence.metamodel.ManagedType;
|
||||
import javax.persistence.metamodel.Metamodel;
|
||||
|
||||
import org.eclipse.hawkbit.repository.DistributionSetFields;
|
||||
import org.eclipse.hawkbit.repository.FieldNameProvider;
|
||||
import org.eclipse.hawkbit.repository.SoftwareModuleFields;
|
||||
import org.eclipse.hawkbit.repository.TargetFields;
|
||||
import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
||||
import org.eclipse.hawkbit.repository.rsql.RSQLParameterSyntaxException;
|
||||
import org.eclipse.hawkbit.repository.rsql.RSQLParameterUnsupportedFieldException;
|
||||
@@ -39,9 +37,7 @@ import org.eclipse.hawkbit.repository.rsql.RSQLUtility;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.invocation.InvocationOnMock;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
import org.mockito.stubbing.Answer;
|
||||
|
||||
import ru.yandex.qatools.allure.annotations.Features;
|
||||
import ru.yandex.qatools.allure.annotations.Stories;
|
||||
@@ -60,33 +56,87 @@ public class RSQLUtilityTest {
|
||||
private CriteriaQuery<SoftwareModule> criteriaQueryMock;
|
||||
@Mock
|
||||
private CriteriaBuilder criteriaBuilderMock;
|
||||
@Mock
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Mock
|
||||
private Metamodel metamodel;
|
||||
|
||||
@Mock
|
||||
private ManagedType managedType;
|
||||
|
||||
@Mock
|
||||
private Attribute attribute;
|
||||
|
||||
@Test(expected = RSQLParameterSyntaxException.class)
|
||||
@Test
|
||||
public void wrongRsqlSyntaxThrowSyntaxException() {
|
||||
final String wrongRSQL = "name==abc;d";
|
||||
when(entityManager.getMetamodel()).thenReturn(metamodel);
|
||||
RSQLUtility.parse(wrongRSQL, SoftwareModuleFields.class, entityManager).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterSyntaxException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = RSQLParameterUnsupportedFieldException.class)
|
||||
@Test
|
||||
public void wrongFieldThrowUnsupportedFieldException() {
|
||||
final String wrongRSQL = "unknownField==abc";
|
||||
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class);
|
||||
doEntitySetup(SoftwareModule.class);
|
||||
RSQLUtility.parse(wrongRSQL, SoftwareModuleFields.class, entityManager).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void wrongRsqlMapSyntaxThrowSyntaxException() {
|
||||
String wrongRSQL = TargetFields.ATTRIBUTE + "==abc";
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock,
|
||||
criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
|
||||
wrongRSQL = TargetFields.ATTRIBUTE + ".unkwon.wrong==abc";
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock,
|
||||
criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
|
||||
wrongRSQL = DistributionSetFields.METADATA + "==abc";
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, DistributionSetFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void wrongRsqlSubEntitySyntaxThrowSyntaxException() {
|
||||
String wrongRSQL = TargetFields.ASSIGNEDDS + "==abc";
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock,
|
||||
criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
|
||||
wrongRSQL = TargetFields.ASSIGNEDDS + ".unknownField==abc";
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock,
|
||||
criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
|
||||
wrongRSQL = TargetFields.ASSIGNEDDS + ".unknownField.ToMuch==abc";
|
||||
try {
|
||||
RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock,
|
||||
criteriaBuilderMock);
|
||||
fail();
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -100,11 +150,9 @@ public class RSQLUtilityTest {
|
||||
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn(
|
||||
mock(Predicate.class));
|
||||
|
||||
doEntitySetup(SoftwareModule.class);
|
||||
|
||||
// test
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class, entityManager).toPredicate(
|
||||
baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock);
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
|
||||
// verfication
|
||||
verify(criteriaBuilderMock, times(1)).and(any(Predicate.class));
|
||||
@@ -119,10 +167,9 @@ public class RSQLUtilityTest {
|
||||
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
|
||||
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn(
|
||||
mock(Predicate.class));
|
||||
doEntitySetup(SoftwareModule.class);
|
||||
// test
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class, entityManager).toPredicate(
|
||||
baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock);
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
|
||||
// verfication
|
||||
verify(criteriaBuilderMock, times(1)).and(any(Predicate.class));
|
||||
@@ -138,10 +185,9 @@ public class RSQLUtilityTest {
|
||||
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
|
||||
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn(
|
||||
mock(Predicate.class));
|
||||
doEntitySetup(SoftwareModule.class);
|
||||
// test
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class, entityManager).toPredicate(
|
||||
baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock);
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
|
||||
// verfication
|
||||
verify(criteriaBuilderMock, times(1)).and(any(Predicate.class));
|
||||
@@ -159,10 +205,9 @@ public class RSQLUtilityTest {
|
||||
mock(Predicate.class));
|
||||
when(criteriaBuilderMock.upper(eq(pathOfString(baseSoftwareModuleRootMock)))).thenReturn(
|
||||
pathOfString(baseSoftwareModuleRootMock));
|
||||
doEntitySetup(SoftwareModule.class);
|
||||
// test
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class, entityManager).toPredicate(
|
||||
baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock);
|
||||
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
|
||||
// verfication
|
||||
verify(criteriaBuilderMock, times(1)).and(any(Predicate.class));
|
||||
@@ -178,10 +223,9 @@ public class RSQLUtilityTest {
|
||||
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) TestValueEnum.class);
|
||||
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
|
||||
|
||||
doEntitySetup(TestValueEnum.class);
|
||||
// test
|
||||
RSQLUtility.parse(correctRsql, TestFieldEnum.class, entityManager).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
RSQLUtility.parse(correctRsql, TestFieldEnum.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock,
|
||||
criteriaBuilderMock);
|
||||
|
||||
// verfication
|
||||
verify(criteriaBuilderMock, times(1)).and(any(Predicate.class));
|
||||
@@ -196,11 +240,9 @@ public class RSQLUtilityTest {
|
||||
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) TestValueEnum.class);
|
||||
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
|
||||
|
||||
doEntitySetup(TestValueEnum.class);
|
||||
|
||||
try {
|
||||
// test
|
||||
RSQLUtility.parse(correctRsql, TestFieldEnum.class, entityManager).toPredicate(baseSoftwareModuleRootMock,
|
||||
RSQLUtility.parse(correctRsql, TestFieldEnum.class).toPredicate(baseSoftwareModuleRootMock,
|
||||
criteriaQueryMock, criteriaBuilderMock);
|
||||
fail("missing RSQLParameterUnsupportedFieldException for wrong enum value");
|
||||
} catch (final RSQLParameterUnsupportedFieldException e) {
|
||||
@@ -208,22 +250,6 @@ public class RSQLUtilityTest {
|
||||
}
|
||||
}
|
||||
|
||||
private void doEntitySetup(final Class clasName) {
|
||||
when(entityManager.getMetamodel()).thenReturn(metamodel);
|
||||
when(metamodel.managedType(clasName)).thenReturn(managedType);
|
||||
when(managedType.getJavaType()).thenReturn(clasName);
|
||||
|
||||
doAnswer(new Answer<Attribute>() {
|
||||
@Override
|
||||
public Attribute answer(final InvocationOnMock invocation) throws Throwable {
|
||||
return attribute;
|
||||
}
|
||||
}).when(managedType).getAttribute(anyString());
|
||||
|
||||
when(attribute.isAssociation()).thenReturn(false);
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <Y> Path<Y> pathOfString(final Path<?> path) {
|
||||
return (Path<Y>) path;
|
||||
|
||||
Reference in New Issue
Block a user