package ungp.sampleng.test.veiculo;
import java.util.List;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import org.junit.Assert;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import ungp.sampleng.backend.entity.Veiculo;
import ungp.sampleng.test.BaseTest;
import ungp.sampleng.test.PreCondition;
import ungp.sampleng.test.PreConditionRule;
import ungp.sampleng.test.ServerClassRule;
public class VeiculoResourceTest extends BaseTest {
@Test @PreCondition(VeiculoResourceCondition.class)
public void test_findById() {
Veiculo veiculo = getWebTarget().path("veiculo/ABC0123").request().get(Veiculo.class);
Assert.assertNotNull(veiculo);
Assert.assertEquals("John Java", veiculo.getProprietario().getNome());
}
@Test @PreCondition(VeiculoResourceCondition.class)
public void test_findAll() {
List<Veiculo> veiculos = getWebTarget().path("veiculo").request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Veiculo>>() {} );
Assert.assertNotNull(veiculos);
Assert.assertFalse(veiculos.isEmpty());
Assert.assertEquals("John Java", veiculos.get(0).getProprietario().getNome());
}
@Test @PreCondition(VeiculoResourceCondition.class)
public void test_delete() {
Veiculo veiculo = getWebTarget().path("veiculo/ABC0123").request().delete(Veiculo.class);
try {
veiculo = ServerClassRule.getTarget().path("veiculo/ABC0123").request().get(Veiculo.class);
Assert.fail("Deveria dar NotFoundException");
} catch (Exception e) {
Assert.assertTrue(e instanceof javax.ws.rs.NotFoundException);
}
Assert.assertNull(veiculo);
}
@Test @PreCondition(VeiculoResourceCondition.class)
public void test_update() {
Veiculo veiculo = VeiculoResourceCondition.createVeiculo();
veiculo.setRenavam("987987");
getWebTarget().path("veiculo").request()
.put(Entity.entity(veiculo, MediaType.APPLICATION_JSON_TYPE), Veiculo.class);
veiculo = getWebTarget().path("veiculo/ABC0123").request().get(Veiculo.class);
Assert.assertEquals("987987", veiculo.getRenavam());
}
@Test
public void test_insert() {
Veiculo veiculo = VeiculoResourceCondition.createVeiculo();
getWebTarget().path("veiculo").request()
.post(Entity.entity(veiculo, MediaType.APPLICATION_JSON_TYPE), Veiculo.class);
veiculo = getWebTarget().path("veiculo/ABC0123").request().get(Veiculo.class);
Assert.assertEquals("John Java", veiculo.getProprietario().getNome());
}
}