package ungp.sampleng.test.infracao; import java.util.Date; import java.util.List; import org.junit.runner.Description; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.stereotype.Component; import org.springframework.test.context.ContextConfiguration; import ungp.sampleng.backend.entity.Infracao; import ungp.sampleng.backend.entity.Logradouro; import ungp.sampleng.backend.entity.Veiculo; import ungp.sampleng.backend.repository.InfracaoRepository; import ungp.sampleng.backend.resource.InfracaoResource; import ungp.sampleng.backend.util.Application; import ungp.sampleng.backend.util.ApplicationContextProvider; import ungp.sampleng.test.veiculo.VeiculoResourceCondition; import javax.inject.Inject; public class InfracaoResourceCondition extends VeiculoResourceCondition { public static ThreadLocal<List<Infracao>> OBJECT = new ThreadLocal<>(); @Override public void prepare(Description description) { super.prepare(description); Veiculo veiculo = VeiculoResourceCondition.OBJECT.get(); MongoOperations mongoOperation = (MongoOperations) ApplicationContextProvider.getApplicationContext().getBean("mongoTemplate"); Logradouro logradouro = new Logradouro(); logradouro.setId("1"); logradouro.setLogradouro("Rua das Acacias"); logradouro.setCep("88030000"); logradouro.setTp_logradouro("Rua"); Infracao infracao1 = createInfracao("1", veiculo, logradouro); Infracao infracao2 = createInfracao("2", veiculo, logradouro); mongoOperation.save(infracao1); mongoOperation.save(infracao2); } @Override public void done(Description description) { super.done(description); MongoOperations mongoOperation = Application.getMongoOperations(); mongoOperation.dropCollection(Infracao.class); mongoOperation.dropCollection(Logradouro.class); } public static Infracao createInfracao(String id, Veiculo veiculo, Logradouro logradouro) { Infracao infracao1 = new Infracao(); infracao1.setId(id); infracao1.setDtInfracao(new Date()); infracao1.setCondutor(veiculo.getProprietario()); infracao1.setLogradouro(logradouro); return infracao1; } }