весеннее тестирование интеграции загрузки - ленивые проблемы инициализации - PullRequest
0 голосов
/ 31 октября 2019

Я хотел бы создать набор тестов для своего сервиса. У меня проблема с сервисом тестирования, который удаляет ресурс. мой тест:

@Test
@Transactional
public void deleteAsset() {
    AssetPutModel am = new AssetPutModel();
    am.setAssetName("test3");
    am.setIpAddresses("1.1.1.1");
    //previously created object
    Long projectId = projectRepository.findAll().get(0).getId();
    //first save it
    ResponseEntity<Status> response = assetService.saveAsset(projectRepository.findAll().get(0).getId(), am, "test");
    Optional<Asset> a = assetRepository.findByNameAndProject("test3", projectRepository.findById(projectId).get());
    //checkif asset is created
    Assertions.assertThat(a.isPresent()).isTrue();
    //delete it
    assetService.deleteAsset(asset.getId(),"test");
    a = assetRepository.findByNameAndProject("test3", projectRepository.findAll().get(0));
    Assertions.assertThat(a.isPresent()).isFalse();
}

метод service.delete:

@Transactional
public ResponseEntity<Status> deleteAsset(Long interfaceId, String name) {
    Optional<Interface> interf = interfaceRepository.findById(interfaceId);
    if (interf.isPresent())
        interfaceRepository.delete(interf.get());
    return new ResponseEntity<>(null,HttpStatus.OK);
}

и моя сущность:

@Entity
@Table(name = "interface")
public class Interface {

    private Long id;
    private Set<Service> services;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    @OneToMany(mappedBy = "anInterface", cascade = CascadeType.REMOVE,orphanRemoval=true,fetch=FetchType.LAZY)
    public Set<Service> getServices() {
        return services;
    }

    public void setServices(Set<Service> services) {
        this.services = services;
    }
    @PreRemove
    private void removeChilds() {
        this.services.remove(this);
    }
}

В результате этот тестовый бросок NullPointerException в интерфейсеюридическое лицо this.services.remove(this);. в то время как обычно работает метод работает хорошо. Есть ли способ заставить тестовую работу работать без изменений в сущности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...