Skip to content

Commit

Permalink
SHIBUI-522: refactoring REST controller for polymorphic filters endpo…
Browse files Browse the repository at this point in the history
…ints fix unit tests
  • Loading branch information
dima767 committed Jun 4, 2018
1 parent cc439e1 commit 4b03b1b
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public ResponseEntity<?> update(@PathVariable String metadataResolverId, @Reques
metadataResolver.getMetadataFilters().stream()
.filter(f -> f.getResourceId().equals(updatedFilter.getResourceId()))
.collect(Collectors.toList());
if (filters.size() != 1) {
if (filters.size() > 1) {
// TODO: I don't think this should ever happen, but... if it does...
// do something? throw exception, return error?
LOGGER.warn("More than one filter was found for id {}! This is probably a bad thing.\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,26 +165,25 @@ class MetadataFiltersControllerTests extends Specification {

def "FilterController.update updates the target EntityAttributes filter as desired"() {
given:
def randomFilter = testObjectGenerator.entityAttributesFilter()
def updatedFilter = testObjectGenerator.entityAttributesFilter()
updatedFilter.resourceId = randomFilter.resourceId
updatedFilter.version = randomFilter.hashCode()

def originalFilter = testObjectGenerator.entityAttributesFilter()
def updatedFilter = testObjectGenerator.copyOf(originalFilter)
updatedFilter.name = 'Updated Filter'
def postedJsonBody = mapper.writeValueAsString(updatedFilter)

def originalMetadataResolver = new MetadataResolver()
originalMetadataResolver.setResourceId(randomGenerator.randomId())
originalMetadataResolver.setMetadataFilters(testObjectGenerator.buildAllTypesOfFilterList())
originalMetadataResolver.metadataFilters.add(originalFilter)

def updatedMetadataResolver = new MetadataResolver()
updatedMetadataResolver.setResourceId(originalMetadataResolver.getResourceId())
updatedMetadataResolver.setMetadataFilters(originalMetadataResolver.getMetadataFilters().collect())
originalMetadataResolver.getMetadataFilters().add(randomFilter)
updatedMetadataResolver.getMetadataFilters().add(updatedFilter)

1 * metadataResolverRepository.findAll() >> [originalMetadataResolver]
1 * metadataResolverRepository.save(_) >> updatedMetadataResolver

def filterUUID = randomFilter.getResourceId()
def filterUUID = updatedFilter.getResourceId()

when:
def result = mockMvc.perform(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,17 @@ class TestObjectGenerator {
}
}

EntityAttributesFilter copyOf(EntityAttributesFilter entityAttributesFilter) {
new EntityAttributesFilter().with {
it.name = entityAttributesFilter.name
it.resourceId = entityAttributesFilter.resourceId
it.setEntityAttributesFilterTarget(entityAttributesFilter.entityAttributesFilterTarget)
it.setAttributes(new ArrayList<Attribute>(entityAttributesFilter.attributes))
it.intoTransientRepresentation()
it
}
}

MetadataFilter buildFilter(Supplier<? extends MetadataFilter> filterSupplier) {
MetadataFilter filter = filterSupplier.get()
filter.setFilterEnabled(generator.randomBoolean())
Expand Down

0 comments on commit 4b03b1b

Please sign in to comment.