Search in sources :

Example 6 with DataSetLoader

use of org.summerb.approaches.jdbccrud.api.relations.DataSetLoader in project summerb by skarpushin.

the class DataSetLoaderTest method testLoadObjectsByIds_ExpectCoupleOneLevelObjectsLoadedOK.

@Test
public void testLoadObjectsByIds_ExpectCoupleOneLevelObjectsLoadedOK() throws EntityNotFoundException, NotAuthorizedException, FieldValidationException {
    DataSetLoader loader = buildLoaderCase1();
    TestDto2 d2i1 = new TestDto2();
    d2i1.setEnv("d2i1");
    d2i1.setLinkToFullDonwload("asdad");
    d2i1 = testDto2Service.create(d2i1);
    TestDto3 d3i1 = new TestDto3();
    d3i1.setLinkToDtoTwo(d2i1.getId());
    d3i1.setLinkToDtoTwo(0);
    d3i1 = testDto3Service.create(d3i1);
    DataSet result = new DataSet();
    Map<String, Set<Object>> idsToLoad = new HashMap<String, Set<Object>>();
    idsToLoad.put(testDto2Service.getEntityTypeMessageCode(), ids(d2i1.getId()));
    idsToLoad.put(testDto3Service.getEntityTypeMessageCode(), ids(d3i1.getId()));
    loader.loadObjectsByIds(idsToLoad, result);
    assertNotNull(result.get(testDto2Service.getEntityTypeMessageCode()).find(d2i1.getId()));
    assertNotNull(result.get(testDto3Service.getEntityTypeMessageCode()).find(d3i1.getId()));
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) DataSet(org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet) DataSet(org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet) HashMap(java.util.HashMap) DataSetLoader(org.summerb.approaches.jdbccrud.api.relations.DataSetLoader) Test(org.junit.Test)

Example 7 with DataSetLoader

use of org.summerb.approaches.jdbccrud.api.relations.DataSetLoader in project summerb by skarpushin.

the class DataSetLoaderTest method testResolveReferencedObjects_ExpectOneToManyDirectsLoadedOk.

@Test
public void testResolveReferencedObjects_ExpectOneToManyDirectsLoadedOk() throws EntityNotFoundException, NotAuthorizedException, FieldValidationException {
    DataSetLoader loader = buildLoaderCase1();
    TestDto2 d2i1 = new TestDto2();
    d2i1.setEnv("required");
    d2i1.setLinkToFullDonwload("required");
    d2i1 = testDto2Service.create(d2i1);
    TestDto3 d3i1 = new TestDto3();
    d3i1.setLinkToDtoTwo(d2i1.getId());
    d3i1 = testDto3Service.create(d3i1);
    TestDto3 d3i2 = new TestDto3();
    d3i2.setLinkToDtoTwo(d2i1.getId());
    d3i2 = testDto3Service.create(d3i2);
    DataSet result = new DataSet();
    result.get(testDto2Service.getEntityTypeMessageCode()).put(d2i1);
    loader.resolveReferencedObjects(result, Refs.ref3to2mand.reverse());
    assertNotNull(result.get(testDto3Service.getEntityTypeMessageCode()).find(d3i1.getId()));
    assertNotNull(result.get(testDto3Service.getEntityTypeMessageCode()).find(d3i2.getId()));
}
Also used : DataSet(org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet) DataSetLoader(org.summerb.approaches.jdbccrud.api.relations.DataSetLoader) Test(org.junit.Test)

Example 8 with DataSetLoader

use of org.summerb.approaches.jdbccrud.api.relations.DataSetLoader in project summerb by skarpushin.

the class DataSetLoaderTest method testResolveReferencedObjects_ExpectDirectReferencesLoadedOk.

@Test
public void testResolveReferencedObjects_ExpectDirectReferencesLoadedOk() throws EntityNotFoundException, NotAuthorizedException, FieldValidationException {
    DataSetLoader loader = buildLoaderCase1();
    TestDto1 d1i1 = new TestDto1();
    d1i1.setEnv("d1i1");
    d1i1.setLinkToFullDonwload("required");
    d1i1 = testDto1Service.create(d1i1);
    TestDto2 d2i1 = new TestDto2();
    d2i1.setEnv(d1i1.getId());
    d2i1.setLinkToFullDonwload("required");
    d2i1 = testDto2Service.create(d2i1);
    TestDto3 d3i1 = new TestDto3();
    d3i1.setLinkToDtoTwo(d2i1.getId());
    d3i1 = testDto3Service.create(d3i1);
    DataSet result = new DataSet();
    Map<String, Set<Object>> idsToLoad = new HashMap<String, Set<Object>>();
    idsToLoad.put(testDto3Service.getEntityTypeMessageCode(), ids(d3i1.getId()));
    loader.loadObjectsByIds(idsToLoad, result);
    loader.resolveReferencedObjects(result, Refs.ref3to2mand, Refs.ref2to1);
    assertNotNull(result.get(testDto2Service.getEntityTypeMessageCode()).find(d2i1.getId()));
    assertNotNull(result.get(testDto1Service.getEntityTypeMessageCode()).find(d1i1.getId()));
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) DataSet(org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet) DataSet(org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet) HashMap(java.util.HashMap) DataSetLoader(org.summerb.approaches.jdbccrud.api.relations.DataSetLoader) Test(org.junit.Test)

Example 9 with DataSetLoader

use of org.summerb.approaches.jdbccrud.api.relations.DataSetLoader in project summerb by skarpushin.

the class DataSetLoaderTest method testLoadObjectsByIds_ExpectOneLoadedOk.

@Test
public void testLoadObjectsByIds_ExpectOneLoadedOk() throws EntityNotFoundException, NotAuthorizedException, FieldValidationException {
    DataSetLoader loader = buildLoaderCase1();
    TestDto2 d2i1 = new TestDto2();
    d2i1.setEnv("d2i1");
    d2i1.setLinkToFullDonwload("asdad");
    d2i1 = testDto2Service.create(d2i1);
    List<HasId> result = loader.loadObjectsByIds(ids(d2i1), testDto2Service.getEntityTypeMessageCode());
    assertNotNull(result);
    assertEquals(1, result.size());
}
Also used : HasId(org.summerb.approaches.jdbccrud.api.dto.HasId) DataSetLoader(org.summerb.approaches.jdbccrud.api.relations.DataSetLoader) Test(org.junit.Test)

Example 10 with DataSetLoader

use of org.summerb.approaches.jdbccrud.api.relations.DataSetLoader in project summerb by skarpushin.

the class DataSetLoaderTest method testResolveReferencedObjects_ExpectBackReferencesLoadedOk.

@Test
public void testResolveReferencedObjects_ExpectBackReferencesLoadedOk() throws EntityNotFoundException, NotAuthorizedException, FieldValidationException {
    DataSetLoader loader = buildLoaderCase1();
    TestDto2 d2i1 = new TestDto2();
    d2i1.setEnv("required");
    d2i1.setLinkToFullDonwload("required");
    d2i1 = testDto2Service.create(d2i1);
    TestDto1 d1i1 = new TestDto1();
    d1i1.setEnv("required");
    d1i1.setLinkToFullDonwload("required");
    d1i1 = testDto1Service.create(d1i1);
    TestDto3 d3i1 = new TestDto3();
    d3i1.setLinkToDtoTwo(d2i1.getId());
    d3i1 = testDto3Service.create(d3i1);
    TestDto3 d3i2 = new TestDto3();
    d3i2.setLinkToDtoTwo(d2i1.getId());
    d3i2.setLinkToDtoOneOptional(d1i1.getId());
    d3i2 = testDto3Service.create(d3i2);
    String t1 = testDto1Service.getEntityTypeMessageCode();
    String t2 = testDto2Service.getEntityTypeMessageCode();
    String t3 = testDto3Service.getEntityTypeMessageCode();
    DataSet result = new DataSet();
    result.get(t2).put(d2i1);
    result.get(t1).put(d1i1);
    loader.resolveReferencedObjects(result, Refs.ref3to2mand.reverse(), Refs.ref3to1.reverse());
    // NOTE: This is ugly construction! We definitely need some sugar here
    assertEquals(1, result.get(t1).getBackRefs().getForRow(d1i1).getForRef(Refs.ref3to1.reverse()).size());
    assertEquals(2, result.get(t2).getBackRefs().getForRow(d2i1).getForRef(Refs.ref3to2mand.reverse()).size());
    assertNotNull(result.get(t3).find(d3i1.getId()));
    assertNotNull(result.get(t3).find(d3i2.getId()));
}
Also used : DataSet(org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet) DataSetLoader(org.summerb.approaches.jdbccrud.api.relations.DataSetLoader) Test(org.junit.Test)

Aggregations

DataSetLoader (org.summerb.approaches.jdbccrud.api.relations.DataSetLoader)11 Test (org.junit.Test)10 DataSet (org.summerb.approaches.jdbccrud.api.dto.datapackage.DataSet)9 HashMap (java.util.HashMap)3 HashSet (java.util.HashSet)3 Set (java.util.Set)3 HasId (org.summerb.approaches.jdbccrud.api.dto.HasId)3 Preconditions (com.google.common.base.Preconditions)1 Arrays (java.util.Arrays)1 List (java.util.List)1 Function (java.util.function.Function)1 Collectors (java.util.stream.Collectors)1 BeansException (org.springframework.beans.BeansException)1 InitializingBean (org.springframework.beans.factory.InitializingBean)1 Autowired (org.springframework.beans.factory.annotation.Autowired)1 ApplicationContext (org.springframework.context.ApplicationContext)1 ApplicationContextAware (org.springframework.context.ApplicationContextAware)1 MediaType (org.springframework.http.MediaType)1 CollectionUtils (org.springframework.util.CollectionUtils)1 DeleteMapping (org.springframework.web.bind.annotation.DeleteMapping)1