Search in sources :

Example 6 with ColumnEntity

use of org.jnosql.diana.api.column.ColumnEntity in project jnosql-artemis by eclipse.

the class DefaultColumnTemplateAsyncTest method shouldReturnErrorWhenThereIsMoreThanOneResultInSingleResult.

@Test
public void shouldReturnErrorWhenThereIsMoreThanOneResultInSingleResult() {
    assertThrows(NonUniqueResultException.class, () -> {
        ArgumentCaptor<Consumer<List<ColumnEntity>>> dianaCallbackCaptor = ArgumentCaptor.forClass(Consumer.class);
        ColumnQuery query = ColumnQueryBuilder.select().from("Person").build();
        Consumer<Optional<Person>> callback = l -> {
        };
        subject.singleResult(query, callback);
        verify(managerMock).select(Mockito.any(ColumnQuery.class), dianaCallbackCaptor.capture());
        Consumer<List<ColumnEntity>> dianaCallBack = dianaCallbackCaptor.getValue();
        dianaCallBack.accept(asList(ColumnEntity.of("Person", asList(columns)), ColumnEntity.of("Person", asList(columns))));
    });
}
Also used : Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) BeforeEach(org.junit.jupiter.api.BeforeEach) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition) Arrays(java.util.Arrays) Converters(org.jnosql.artemis.Converters) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) ColumnDeleteQuery(org.jnosql.diana.api.column.ColumnDeleteQuery) ColumnFamilyManagerAsync(org.jnosql.diana.api.column.ColumnFamilyManagerAsync) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ColumnQueryBuilder.delete(org.jnosql.diana.api.column.query.ColumnQueryBuilder.delete) AtomicReference(java.util.concurrent.atomic.AtomicReference) Collections.singletonList(java.util.Collections.singletonList) Person(org.jnosql.artemis.model.Person) Inject(javax.inject.Inject) CDIExtension(org.jnosql.artemis.CDIExtension) ArgumentCaptor(org.mockito.ArgumentCaptor) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) Arrays.asList(java.util.Arrays.asList) ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Duration(java.time.Duration) NonUniqueResultException(org.jnosql.diana.api.NonUniqueResultException) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Instance(javax.enterprise.inject.Instance) ColumnQueryBuilder(org.jnosql.diana.api.column.query.ColumnQueryBuilder) ColumnQuery(org.jnosql.diana.api.column.ColumnQuery) Awaitility.await(org.awaitility.Awaitility.await) Collections.emptyList(java.util.Collections.emptyList) Collectors(java.util.stream.Collectors) ClassRepresentations(org.jnosql.artemis.reflection.ClassRepresentations) Column(org.jnosql.diana.api.column.Column) Mockito.verify(org.mockito.Mockito.verify) Test(org.junit.jupiter.api.Test) Consumer(java.util.function.Consumer) Mockito(org.mockito.Mockito) List(java.util.List) Stream(java.util.stream.Stream) ColumnQueryBuilder.select(org.jnosql.diana.api.column.query.ColumnQueryBuilder.select) Optional(java.util.Optional) ColumnQuery(org.jnosql.diana.api.column.ColumnQuery) ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Consumer(java.util.function.Consumer) Optional(java.util.Optional) Collections.singletonList(java.util.Collections.singletonList) Arrays.asList(java.util.Arrays.asList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Test(org.junit.jupiter.api.Test)

Example 7 with ColumnEntity

use of org.jnosql.diana.api.column.ColumnEntity in project jnosql-artemis by eclipse.

the class DefaultColumnTemplateAsyncTest method shouldReturnSingleResult.

@Test
public void shouldReturnSingleResult() {
    ArgumentCaptor<Consumer<List<ColumnEntity>>> dianaCallbackCaptor = ArgumentCaptor.forClass(Consumer.class);
    ColumnQuery query = ColumnQueryBuilder.select().from("Person").build();
    AtomicBoolean condition = new AtomicBoolean(false);
    AtomicReference<Person> atomicReference = new AtomicReference<>();
    Consumer<Optional<Person>> callback = p -> {
        condition.set(true);
        p.ifPresent(atomicReference::set);
    };
    subject.singleResult(query, callback);
    verify(managerMock).select(Mockito.any(ColumnQuery.class), dianaCallbackCaptor.capture());
    Consumer<List<ColumnEntity>> dianaCallBack = dianaCallbackCaptor.getValue();
    dianaCallBack.accept(singletonList(ColumnEntity.of("Person", asList(columns))));
    verify(managerMock).select(Mockito.eq(query), Mockito.any());
    await().untilTrue(condition);
    assertNotNull(atomicReference.get());
}
Also used : Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) BeforeEach(org.junit.jupiter.api.BeforeEach) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition) Arrays(java.util.Arrays) Converters(org.jnosql.artemis.Converters) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) ColumnDeleteQuery(org.jnosql.diana.api.column.ColumnDeleteQuery) ColumnFamilyManagerAsync(org.jnosql.diana.api.column.ColumnFamilyManagerAsync) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ColumnQueryBuilder.delete(org.jnosql.diana.api.column.query.ColumnQueryBuilder.delete) AtomicReference(java.util.concurrent.atomic.AtomicReference) Collections.singletonList(java.util.Collections.singletonList) Person(org.jnosql.artemis.model.Person) Inject(javax.inject.Inject) CDIExtension(org.jnosql.artemis.CDIExtension) ArgumentCaptor(org.mockito.ArgumentCaptor) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) Arrays.asList(java.util.Arrays.asList) ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Duration(java.time.Duration) NonUniqueResultException(org.jnosql.diana.api.NonUniqueResultException) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Instance(javax.enterprise.inject.Instance) ColumnQueryBuilder(org.jnosql.diana.api.column.query.ColumnQueryBuilder) ColumnQuery(org.jnosql.diana.api.column.ColumnQuery) Awaitility.await(org.awaitility.Awaitility.await) Collections.emptyList(java.util.Collections.emptyList) Collectors(java.util.stream.Collectors) ClassRepresentations(org.jnosql.artemis.reflection.ClassRepresentations) Column(org.jnosql.diana.api.column.Column) Mockito.verify(org.mockito.Mockito.verify) Test(org.junit.jupiter.api.Test) Consumer(java.util.function.Consumer) Mockito(org.mockito.Mockito) List(java.util.List) Stream(java.util.stream.Stream) ColumnQueryBuilder.select(org.jnosql.diana.api.column.query.ColumnQueryBuilder.select) Optional(java.util.Optional) ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Optional(java.util.Optional) AtomicReference(java.util.concurrent.atomic.AtomicReference) ColumnQuery(org.jnosql.diana.api.column.ColumnQuery) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Consumer(java.util.function.Consumer) Collections.singletonList(java.util.Collections.singletonList) Arrays.asList(java.util.Arrays.asList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Person(org.jnosql.artemis.model.Person) Test(org.junit.jupiter.api.Test)

Example 8 with ColumnEntity

use of org.jnosql.diana.api.column.ColumnEntity in project jnosql-artemis by eclipse.

the class DefaultColumnTemplateAsyncTest method shouldInsertIterable.

@Test
public void shouldInsertIterable() {
    ColumnEntity entity = ColumnEntity.of("Person");
    entity.addAll(Stream.of(columns).collect(Collectors.toList()));
    subject.insert(singletonList(this.person));
    verify(managerMock).insert(captor.capture(), Mockito.any(Consumer.class));
    ColumnEntity value = captor.getValue();
    assertEquals(entity.getName(), value.getName());
}
Also used : ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test)

Example 9 with ColumnEntity

use of org.jnosql.diana.api.column.ColumnEntity in project jnosql-artemis by eclipse.

the class DefaultColumnTemplateTest method shouldInsert.

@Test
public void shouldInsert() {
    ColumnEntity columnEntity = ColumnEntity.of("Person");
    columnEntity.addAll(Stream.of(columns).collect(Collectors.toList()));
    Mockito.when(managerMock.insert(any(ColumnEntity.class))).thenReturn(columnEntity);
    subject.insert(this.person);
    verify(managerMock).insert(captor.capture());
    verify(columnEventPersistManager).firePostEntity(any(Person.class));
    verify(columnEventPersistManager).firePreEntity(any(Person.class));
    verify(columnEventPersistManager).firePreColumn(any(ColumnEntity.class));
    verify(columnEventPersistManager).firePostColumn(any(ColumnEntity.class));
    ColumnEntity value = captor.getValue();
    assertEquals("Person", value.getName());
    assertEquals(4, value.getColumns().size());
}
Also used : ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Person(org.jnosql.artemis.model.Person) Test(org.junit.jupiter.api.Test)

Example 10 with ColumnEntity

use of org.jnosql.diana.api.column.ColumnEntity in project jnosql-artemis by eclipse.

the class DefaultColumnTemplateTest method shouldInsertTTL.

@Test
public void shouldInsertTTL() {
    ColumnEntity columnEntity = ColumnEntity.of("Person");
    columnEntity.addAll(Stream.of(columns).collect(Collectors.toList()));
    Mockito.when(managerMock.insert(any(ColumnEntity.class), any(Duration.class))).thenReturn(columnEntity);
    subject.insert(this.person, Duration.ofHours(2));
    verify(managerMock).insert(captor.capture(), Mockito.eq(Duration.ofHours(2)));
    verify(columnEventPersistManager).firePostEntity(any(Person.class));
    verify(columnEventPersistManager).firePreEntity(any(Person.class));
    verify(columnEventPersistManager).firePreColumn(any(ColumnEntity.class));
    verify(columnEventPersistManager).firePostColumn(any(ColumnEntity.class));
    ColumnEntity value = captor.getValue();
    assertEquals("Person", value.getName());
    assertEquals(4, value.getColumns().size());
}
Also used : ColumnEntity(org.jnosql.diana.api.column.ColumnEntity) Duration(java.time.Duration) Person(org.jnosql.artemis.model.Person) Test(org.junit.jupiter.api.Test)

Aggregations

ColumnEntity (org.jnosql.diana.api.column.ColumnEntity)88 Test (org.junit.jupiter.api.Test)76 ColumnQuery (org.jnosql.diana.api.column.ColumnQuery)26 Column (org.jnosql.diana.api.column.Column)22 Arrays.asList (java.util.Arrays.asList)17 List (java.util.List)17 Consumer (java.util.function.Consumer)14 Collections.singletonList (java.util.Collections.singletonList)13 ColumnDeleteQuery (org.jnosql.diana.api.column.ColumnDeleteQuery)13 Person (org.jnosql.artemis.model.Person)12 Duration (java.time.Duration)11 Collections.emptyList (java.util.Collections.emptyList)10 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)10 AtomicReference (java.util.concurrent.atomic.AtomicReference)10 ColumnQueryBuilder.delete (org.jnosql.diana.api.column.query.ColumnQueryBuilder.delete)9 ColumnQueryBuilder.select (org.jnosql.diana.api.column.query.ColumnQueryBuilder.select)9 Assertions.assertThrows (org.junit.jupiter.api.Assertions.assertThrows)9 BeforeEach (org.junit.jupiter.api.BeforeEach)9 ArrayList (java.util.ArrayList)8 Arrays (java.util.Arrays)8