Search in sources :

Example 1 with Car

use of io.vertigo.dynamo.store.data.domain.car.Car in project vertigo by KleeGroup.

the class AbstractStoreManagerTest method testGetFamilliesCars.

/**
 * Test que les listes 1N ne reste pas en cache après une mise à jour.
 * Ici l'entité en cache est la destination de la navigation : Car
 */
@Test
public void testGetFamilliesCars() {
    // on crée une famille
    final Famille famille = new Famille();
    famille.setLibelle("Ma famille");
    final DtList<Car> firstResult;
    try (final VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        final Famille createdFamille = storeManager.getDataStore().create(famille);
        // on récupère la liste des voitures
        final DtList<Car> cars = storeManager.getDataStore().findAll(allCarsUri);
        Assert.assertNotNull(cars);
        Assert.assertFalse("La liste des cars est vide", cars.isEmpty());
        // on associe la liste de voiture à la famille en 1N
        for (final Car car : cars) {
            car.setFamId(createdFamille.getFamId());
            storeManager.getDataStore().update(car);
        }
        // On garde le résultat de l'association 1N
        firstResult = createdFamille.getVoituresFamilleList();
        // On met à jour l'association en retirant le premier élément
        final Car firstCar = cars.get(0);
        firstCar.setFamId(null);
        storeManager.getDataStore().update(firstCar);
        // sans commit le cache n'est pas rafraichit
        transaction.commit();
    }
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        // on garde le résultat en lazy : il doit avoir le meme nombre de voiture qu'au début
        final DtList<Car> lazyResult = famille.getVoituresFamilleList();
        Assert.assertEquals("Test tailles du nombre de voiture pour une 1-N", firstResult.size(), lazyResult.size());
        // on recharge la famille et on recharge la liste issus de l'association 1N : il doit avoir une voiture de moins qu'au début
        final DtDefinition dtFamille = DtObjectUtil.findDtDefinition(Famille.class);
        final Famille famille2 = storeManager.getDataStore().readOne(new URI<Famille>(dtFamille, famille.getFamId()));
        final DtList<Car> secondResult = famille2.getVoituresFamilleList();
        Assert.assertEquals("Test tailles du nombre de voiture pour une 1-N", firstResult.size() - 1, secondResult.size());
        transaction.commit();
    }
}
Also used : Famille(io.vertigo.dynamo.store.data.domain.famille.Famille) Car(io.vertigo.dynamo.store.data.domain.car.Car) DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) Test(org.junit.Test)

Example 2 with Car

use of io.vertigo.dynamo.store.data.domain.car.Car in project vertigo by KleeGroup.

the class AbstractStoreManagerTest method testSelectCarAndTestMasterDataEnum.

@Test
public void testSelectCarAndTestMasterDataEnum() {
    try (VTransactionWritable tx = transactionManager.createCurrentTransaction()) {
        final DtList<Car> dtcEssence = storeManager.getDataStore().find(DtObjectUtil.findDtDefinition(Car.class), Criterions.isEqualTo(CarFields.MTY_CD, MotorTypeEnum.essence.getEntityUri().getId()));
        // ---
        Assert.assertEquals(1, dtcEssence.size());
        Assert.assertTrue(dtcEssence.get(0).motorType().getEnumValue() == MotorTypeEnum.essence);
    }
}
Also used : Car(io.vertigo.dynamo.store.data.domain.car.Car) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) Test(org.junit.Test)

Example 3 with Car

use of io.vertigo.dynamo.store.data.domain.car.Car in project vertigo by KleeGroup.

the class AbstractStoreManagerTest method testSelectCarCachedRowMax.

@Test
public void testSelectCarCachedRowMax() {
    try (VTransactionWritable tx = transactionManager.createCurrentTransaction()) {
        final DtListURI someCars = new DtListURIForCriteria<>(dtDefinitionCar, null, 3);
        final DtList<Car> dtc1 = storeManager.getDataStore().findAll(someCars);
        Assert.assertEquals(3, dtc1.size());
        // -----
        final DtListURI allCars = new DtListURIForCriteria<>(dtDefinitionCar, null, null);
        final DtList<Car> dtc = storeManager.getDataStore().findAll(allCars);
        Assert.assertEquals(9, dtc.size());
    }
}
Also used : Car(io.vertigo.dynamo.store.data.domain.car.Car) DtListURI(io.vertigo.dynamo.domain.model.DtListURI) DtListURIForCriteria(io.vertigo.dynamo.domain.model.DtListURIForCriteria) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) Test(org.junit.Test)

Example 4 with Car

use of io.vertigo.dynamo.store.data.domain.car.Car in project vertigo by KleeGroup.

the class AbstractStoreManagerTest method createNewCar.

private static Car createNewCar() {
    final Car car = new Car();
    car.setId(null);
    car.setPrice(5600);
    car.setManufacturer("Peugeot");
    car.setModel("407");
    car.setYear(2014);
    car.setKilo(20000);
    car.motorType().setEnumValue(MotorTypeEnum.essence);
    car.setDescription("Vds 407 de test, 2014, 20000 kms, rouge, TBEG");
    return car;
}
Also used : Car(io.vertigo.dynamo.store.data.domain.car.Car)

Example 5 with Car

use of io.vertigo.dynamo.store.data.domain.car.Car in project vertigo by KleeGroup.

the class AbstractStoreManagerTest method testTxCrudInsertDeleteCommit.

@Test
public void testTxCrudInsertDeleteCommit() {
    final Car car = createNewCar();
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        final Car createdCar = storeManager.getDataStore().create(car);
        // Check cars count
        checkCrudCarsCount(1);
        storeManager.getDataStore().delete(createdCar.getURI());
        // car is cacheable : list was'nt flush here
        checkCrudCarsCount(1);
        transaction.commit();
    }
    try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
        // car is cacheable : must wait commit to see delete
        checkCrudCarsCount(0);
    }
}
Also used : Car(io.vertigo.dynamo.store.data.domain.car.Car) VTransactionWritable(io.vertigo.commons.transaction.VTransactionWritable) Test(org.junit.Test)

Aggregations

Car (io.vertigo.dynamo.store.data.domain.car.Car)25 Test (org.junit.Test)23 VTransactionWritable (io.vertigo.commons.transaction.VTransactionWritable)22 DtDefinition (io.vertigo.dynamo.domain.metamodel.DtDefinition)2 DtListURI (io.vertigo.dynamo.domain.model.DtListURI)2 Famille (io.vertigo.dynamo.store.data.domain.famille.Famille)2 DtListURIForCriteria (io.vertigo.dynamo.domain.model.DtListURIForCriteria)1 URI (io.vertigo.dynamo.domain.model.URI)1 ArrayList (java.util.ArrayList)1