Skip to content

Commit

Permalink
SHIBUI-2051 test adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
chasegawa committed Aug 31, 2021
1 parent c1e8bed commit 9331450
Show file tree
Hide file tree
Showing 22 changed files with 467 additions and 1,140 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package edu.internet2.tier.shibboleth.admin.ui.controller;

import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter;
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.ITargetable;
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter;
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver;
Expand All @@ -9,21 +8,12 @@
import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService;
import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService;
import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;

Expand Down Expand Up @@ -137,7 +127,7 @@ public ResponseEntity<?> getAll(@PathVariable String metadataResolverId) {
@GetMapping("/Filters/{resourceId}")
@Transactional(readOnly = true)
public ResponseEntity<?> getOne(@PathVariable String metadataResolverId, @PathVariable String resourceId) {
MetadataResolver resolver = findResolverOrThrowHttp404(metadataResolverId);
findResolverOrThrowHttp404(metadataResolverId);
return ResponseEntity.ok(findFilterOrThrowHttp404(resourceId));
}

Expand Down Expand Up @@ -199,7 +189,7 @@ public ResponseEntity<?> update(@PathVariable String metadataResolverId,
.stream()
.filter(it -> it.getResourceId().equals(resourceId))
.findFirst();
if (!filterTobeUpdatedOptional.isPresent()) {
if (filterTobeUpdatedOptional.isEmpty()) {
return ResponseEntity.notFound().build();
}
MetadataFilter filterTobeUpdated = filterTobeUpdatedOptional.get();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package edu.internet2.tier.shibboleth.admin.ui


import edu.internet2.tier.shibboleth.admin.ui.security.model.Role
import edu.internet2.tier.shibboleth.admin.ui.security.model.User
import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository
Expand All @@ -14,16 +13,13 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
import org.springframework.data.jpa.repository.config.EnableJpaRepositories
import org.springframework.test.context.ContextConfiguration
import org.springframework.transaction.annotation.Transactional
import spock.lang.Shared
import spock.lang.Specification

@DataJpaTest
@ContextConfiguration(classes = [BaseDataJpaTestSetupConfiguration])
@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"])
@EntityScan("edu.internet2.tier.shibboleth.admin.ui")
abstract class BaseDataJpaTestSetup extends Specification {
static boolean setupRun = false

@Autowired
GroupServiceForTesting groupService

Expand All @@ -39,15 +35,9 @@ abstract class BaseDataJpaTestSetup extends Specification {
@Autowired
UserService userService

def setup() {
runOnce()
}

// One time setup to ensure roles are in a known good state and that we have an admin user and group
// ensure roles are in a known good state and that we have an admin user and group
@Transactional
runOnce() {
if (setupRun) return

def setup() {
groupService.clearAllForTesting()
userRepository.deleteAll()
ownershipRepository.deleteAll()
Expand Down Expand Up @@ -77,6 +67,5 @@ abstract class BaseDataJpaTestSetup extends Specification {
User adminUser = new User(username: "admin", roles: [adminRole.get()], password: "foo")
userService.save(adminUser)
}
setupRun = true
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package edu.internet2.tier.shibboleth.admin.ui

import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.security.model.listener.GroupUpdatedEntityListener
Expand All @@ -8,16 +10,23 @@ import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsReposito
import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository
import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting
import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl
import edu.internet2.tier.shibboleth.admin.util.AttributeUtility
import io.micrometer.core.instrument.search.Search
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Import
import org.springframework.context.annotation.Primary

@Configuration
@Import(ShibUIConfiguration.class)
@Import([ShibUIConfiguration.class, CustomPropertiesConfiguration.class, SearchConfiguration.class])
@ComponentScan(basePackages=[ "edu.internet2.tier.shibboleth.admin.ui.service", "edu.internet2.tier.shibboleth.admin.ui.security.service" ])
class BaseDataJpaTestSetupConfiguration {
@Bean
AttributeUtility attributeUtility(OpenSamlObjects openSamlObjects) {
return new AttributeUtility(openSamlObjects)
}

@Bean
@Primary
GroupServiceForTesting groupServiceForTesting(GroupsRepository groupRepo, OwnershipRepository ownershipRepository) {
Expand Down
Loading

0 comments on commit 9331450

Please sign in to comment.