Search in sources :

Example 71 with DataDocument

use of io.lumeer.engine.api.data.DataDocument in project engine by Lumeer.

the class DocumentServiceIT method testPatchDocument.

@Test
public void testPatchDocument() {
    String id = createDocument().getId();
    DataDocument data = new DataDocument(KEY1, VALUE2);
    Entity entity = Entity.json(data);
    LocalDateTime beforeUpdateTime = LocalDateTime.now();
    Response response = client.target(DOCUMENTS_URL_PREFIX).path(collection.getId()).path("documents").path(id).path("data").request(MediaType.APPLICATION_JSON).build("PATCH", entity).invoke();
    assertThat(response).isNotNull();
    assertThat(response.getStatusInfo()).isEqualTo(Response.Status.OK);
    Document storedDocument = documentDao.getDocumentById(id);
    SoftAssertions assertions = new SoftAssertions();
    assertions.assertThat(storedDocument.getId()).isEqualTo(id);
    assertions.assertThat(storedDocument.getCollectionId()).isEqualTo(collection.getId());
    assertions.assertThat(storedDocument.getCreatedBy()).isEqualTo(USER);
    assertions.assertThat(storedDocument.getCreationDate()).isBeforeOrEqualTo(beforeUpdateTime);
    assertions.assertThat(storedDocument.getUpdatedBy()).isEqualTo(USER);
    assertions.assertThat(storedDocument.getUpdateDate()).isAfterOrEqualTo(beforeUpdateTime).isBeforeOrEqualTo(LocalDateTime.now());
    assertions.assertThat(storedDocument.getDataVersion()).isEqualTo(2);
    assertions.assertThat(storedDocument.getData()).isNull();
    assertions.assertAll();
    DataDocument storedData = dataDao.getData(collection.getId(), id);
    assertThat(storedData).isNotNull();
    assertThat(storedData).containsEntry(KEY1, VALUE2);
    assertThat(storedData).containsEntry(KEY2, VALUE2);
}
Also used : LocalDateTime(java.time.LocalDateTime) Response(javax.ws.rs.core.Response) DataDocument(io.lumeer.engine.api.data.DataDocument) Entity(javax.ws.rs.client.Entity) SoftAssertions(org.assertj.core.api.SoftAssertions) DataDocument(io.lumeer.engine.api.data.DataDocument) JsonDocument(io.lumeer.api.dto.JsonDocument) Document(io.lumeer.api.model.Document) Test(org.junit.Test)

Example 72 with DataDocument

use of io.lumeer.engine.api.data.DataDocument in project engine by Lumeer.

the class DocumentServiceIT method testCreateDocument.

@Test
public void testCreateDocument() {
    Document document = prepareDocument();
    Entity entity = Entity.json(document);
    LocalDateTime beforeTime = LocalDateTime.now();
    Response response = client.target(DOCUMENTS_URL_PREFIX).path(collection.getId()).path("documents").request(MediaType.APPLICATION_JSON).buildPost(entity).invoke();
    assertThat(response).isNotNull();
    assertThat(response.getStatusInfo()).isEqualTo(Response.Status.CREATED);
    assertThat(response.getLocation().getPath()).startsWith(DOCUMENTS_PATH_PREFIX);
    String[] path = response.getLocation().getPath().split("/");
    String id = path[path.length - 1];
    assertThat(ObjectId.isValid(id)).isTrue();
    Document storedDocument = documentDao.getDocumentById(id);
    assertThat(storedDocument).isNotNull();
    SoftAssertions assertions = new SoftAssertions();
    assertions.assertThat(storedDocument.getId()).isEqualTo(id);
    assertions.assertThat(storedDocument.getCollectionId()).isEqualTo(collection.getId());
    assertions.assertThat(storedDocument.getCreatedBy()).isEqualTo(USER);
    assertions.assertThat(storedDocument.getCreationDate()).isAfterOrEqualTo(beforeTime).isBeforeOrEqualTo(LocalDateTime.now());
    assertions.assertThat(storedDocument.getUpdatedBy()).isNull();
    assertions.assertThat(storedDocument.getUpdateDate()).isNull();
    assertions.assertThat(storedDocument.getDataVersion()).isEqualTo(1);
    assertions.assertThat(storedDocument.getData()).isNull();
    assertions.assertAll();
    DataDocument storedData = dataDao.getData(collection.getId(), id);
    assertThat(storedData).isNotNull();
    assertThat(storedData).containsEntry(KEY1, VALUE1);
    assertThat(storedData).containsEntry(KEY2, VALUE2);
}
Also used : LocalDateTime(java.time.LocalDateTime) Response(javax.ws.rs.core.Response) Entity(javax.ws.rs.client.Entity) DataDocument(io.lumeer.engine.api.data.DataDocument) SoftAssertions(org.assertj.core.api.SoftAssertions) DataDocument(io.lumeer.engine.api.data.DataDocument) JsonDocument(io.lumeer.api.dto.JsonDocument) Document(io.lumeer.api.model.Document) Test(org.junit.Test)

Example 73 with DataDocument

use of io.lumeer.engine.api.data.DataDocument in project engine by Lumeer.

the class DocumentFacadeIT method testUpdateDocumentData.

@Test
public void testUpdateDocumentData() {
    Document document = createDocument();
    String id = document.getId();
    Collection storedCollection = collectionDao.getCollectionById(collection.getId());
    assertThat(storedCollection.getDocumentsCount()).isEqualTo(1);
    assertThat(storedCollection.getAttributes()).extracting(Attribute::getFullName).containsOnly(KEY1, KEY2);
    assertThat(findCollectionAttribute(storedCollection, KEY1).getUsageCount()).isEqualTo(1);
    assertThat(findCollectionAttribute(storedCollection, KEY2).getUsageCount()).isEqualTo(1);
    DataDocument data = new DataDocument(KEY1, VALUE2);
    LocalDateTime beforeUpdateTime = LocalDateTime.now();
    Document updatedDocument = documentFacade.updateDocumentData(collection.getId(), id, data);
    assertThat(updatedDocument).isNotNull();
    Document storedDocument = documentDao.getDocumentById(id);
    SoftAssertions assertions = new SoftAssertions();
    assertions.assertThat(storedDocument.getId()).isEqualTo(id);
    assertions.assertThat(storedDocument.getCollectionId()).isEqualTo(collection.getId());
    assertions.assertThat(storedDocument.getCreatedBy()).isEqualTo(USER);
    assertions.assertThat(storedDocument.getCreationDate()).isBeforeOrEqualTo(beforeUpdateTime);
    assertions.assertThat(storedDocument.getUpdatedBy()).isEqualTo(USER);
    assertions.assertThat(storedDocument.getUpdateDate()).isAfterOrEqualTo(beforeUpdateTime).isBeforeOrEqualTo(LocalDateTime.now());
    assertions.assertThat(storedDocument.getDataVersion()).isEqualTo(2);
    assertions.assertThat(storedDocument.getData()).isNull();
    assertions.assertAll();
    DataDocument storedData = dataDao.getData(collection.getId(), id);
    assertThat(storedData).isNotNull();
    assertThat(storedData).containsEntry(KEY1, VALUE2);
    assertThat(storedData).doesNotContainKey(KEY2);
    storedCollection = collectionDao.getCollectionById(collection.getId());
    assertThat(storedCollection.getDocumentsCount()).isEqualTo(1);
    assertThat(storedCollection.getAttributes()).extracting(Attribute::getFullName).containsOnly(KEY1, KEY2);
    assertThat(findCollectionAttribute(storedCollection, KEY1).getUsageCount()).isEqualTo(1);
    assertThat(findCollectionAttribute(storedCollection, KEY2).getUsageCount()).isEqualTo(0);
}
Also used : LocalDateTime(java.time.LocalDateTime) DataDocument(io.lumeer.engine.api.data.DataDocument) SoftAssertions(org.assertj.core.api.SoftAssertions) JsonCollection(io.lumeer.api.dto.JsonCollection) Collection(io.lumeer.api.model.Collection) DataDocument(io.lumeer.engine.api.data.DataDocument) JsonDocument(io.lumeer.api.dto.JsonDocument) Document(io.lumeer.api.model.Document) Test(org.junit.Test)

Example 74 with DataDocument

use of io.lumeer.engine.api.data.DataDocument in project engine by Lumeer.

the class DocumentFacadeIT method testCreateDocument.

@Test
public void testCreateDocument() {
    Collection storedCollection = collectionDao.getCollectionById(collection.getId());
    assertThat(storedCollection.getDocumentsCount()).isEqualTo(0);
    assertThat(storedCollection.getAttributes()).extracting(Attribute::getFullName).isEmpty();
    Document document = prepareDocument();
    LocalDateTime beforeTime = LocalDateTime.now();
    String id = documentFacade.createDocument(collection.getId(), document).getId();
    assertThat(id).isNotNull();
    Document storedDocument = documentDao.getDocumentById(id);
    assertThat(storedDocument).isNotNull();
    SoftAssertions assertions = new SoftAssertions();
    assertions.assertThat(storedDocument.getId()).isEqualTo(id);
    assertions.assertThat(storedDocument.getCollectionId()).isEqualTo(collection.getId());
    assertions.assertThat(storedDocument.getCreatedBy()).isEqualTo(USER);
    assertions.assertThat(storedDocument.getCreationDate()).isAfterOrEqualTo(beforeTime).isBeforeOrEqualTo(LocalDateTime.now());
    assertions.assertThat(storedDocument.getUpdatedBy()).isNull();
    assertions.assertThat(storedDocument.getUpdateDate()).isNull();
    assertions.assertThat(storedDocument.getDataVersion()).isEqualTo(1);
    assertions.assertThat(storedDocument.getData()).isNull();
    assertions.assertAll();
    DataDocument storedData = dataDao.getData(collection.getId(), id);
    assertThat(storedData).isNotNull();
    assertThat(storedData).containsEntry(KEY1, VALUE1);
    assertThat(storedData).containsEntry(KEY2, VALUE2);
    storedCollection = collectionDao.getCollectionById(collection.getId());
    assertThat(storedCollection.getDocumentsCount()).isEqualTo(1);
    assertThat(storedCollection.getAttributes()).extracting(Attribute::getFullName).containsOnly(KEY1, KEY2);
    assertThat(findCollectionAttribute(storedCollection, KEY1).getUsageCount()).isEqualTo(1);
    assertThat(findCollectionAttribute(storedCollection, KEY2).getUsageCount()).isEqualTo(1);
}
Also used : LocalDateTime(java.time.LocalDateTime) DataDocument(io.lumeer.engine.api.data.DataDocument) SoftAssertions(org.assertj.core.api.SoftAssertions) JsonCollection(io.lumeer.api.dto.JsonCollection) Collection(io.lumeer.api.model.Collection) DataDocument(io.lumeer.engine.api.data.DataDocument) JsonDocument(io.lumeer.api.dto.JsonDocument) Document(io.lumeer.api.model.Document) Test(org.junit.Test)

Example 75 with DataDocument

use of io.lumeer.engine.api.data.DataDocument in project engine by Lumeer.

the class ImportFacadeIT method testImportEmptyCSV.

@Test
public void testImportEmptyCSV() {
    final String emptyCSV = "";
    ImportedCollection importedCollection = createImportObject(emptyCSV);
    Collection collection = importFacade.importDocuments(ImportFacade.FORMAT_CSV, importedCollection);
    assertThat(collection).isNotNull();
    List<DataDocument> data = dataDao.getData(collection.getId(), query());
    assertThat(data).isEmpty();
}
Also used : DataDocument(io.lumeer.engine.api.data.DataDocument) ImportedCollection(io.lumeer.api.model.ImportedCollection) JsonCollection(io.lumeer.api.dto.JsonCollection) ImportedCollection(io.lumeer.api.model.ImportedCollection) Collection(io.lumeer.api.model.Collection) Test(org.junit.Test)

Aggregations

DataDocument (io.lumeer.engine.api.data.DataDocument)75 Test (org.junit.Test)42 Collection (io.lumeer.api.model.Collection)16 Document (io.lumeer.api.model.Document)16 JsonDocument (io.lumeer.api.dto.JsonDocument)14 Document (org.bson.Document)13 SoftAssertions (org.assertj.core.api.SoftAssertions)10 ReturnDocument (com.mongodb.client.model.ReturnDocument)9 JsonCollection (io.lumeer.api.dto.JsonCollection)9 DataFilter (io.lumeer.engine.api.data.DataFilter)9 ImportedCollection (io.lumeer.api.model.ImportedCollection)6 SearchQuery (io.lumeer.storage.api.query.SearchQuery)6 LocalDateTime (java.time.LocalDateTime)6 BsonDocument (org.bson.BsonDocument)6 LinkedList (java.util.LinkedList)5 FindOneAndUpdateOptions (com.mongodb.client.model.FindOneAndUpdateOptions)4 ArrayList (java.util.ArrayList)4 List (java.util.List)4 Response (javax.ws.rs.core.Response)4 DataStorageStats (io.lumeer.engine.api.data.DataStorageStats)3