Search in sources :

Example 51 with Person

use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.

the class DocumentRepositoryProxyTest method shouldSaveUsingInsertWhenDataDoesNotExist.

@Test
public void shouldSaveUsingInsertWhenDataDoesNotExist() {
    when(template.find(Mockito.eq(Person.class), Mockito.eq(10L))).thenReturn(Optional.empty());
    ArgumentCaptor<Person> captor = ArgumentCaptor.forClass(Person.class);
    Person person = Person.builder().withName("Ada").withId(10L).withPhones(singletonList("123123")).build();
    assertNotNull(personRepository.save(person));
    verify(template).insert(captor.capture());
    Person value = captor.getValue();
    assertEquals(person, value);
}
Also used : Person(org.jnosql.artemis.model.Person) Test(org.junit.jupiter.api.Test)

Example 52 with Person

use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.

the class DocumentRepositoryProxyTest method shouldFindByAgeLessEqual.

@Test
public void shouldFindByAgeLessEqual() {
    Person ada = Person.builder().withAge(20).withName("Ada").build();
    when(template.select(any(DocumentQuery.class))).thenReturn(singletonList(ada));
    personRepository.findByAgeLessThan(33);
    ArgumentCaptor<DocumentQuery> captor = ArgumentCaptor.forClass(DocumentQuery.class);
    verify(template).select(captor.capture());
    DocumentQuery query = captor.getValue();
    DocumentCondition condition = query.getCondition().get();
    assertEquals("Person", query.getDocumentCollection());
    assertEquals(LESSER_THAN, condition.getCondition());
    assertEquals(Document.of("age", 33), condition.getDocument());
}
Also used : DocumentQuery(org.jnosql.diana.api.document.DocumentQuery) Person(org.jnosql.artemis.model.Person) DocumentCondition(org.jnosql.diana.api.document.DocumentCondition) Test(org.junit.jupiter.api.Test)

Example 53 with Person

use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.

the class DocumentRepositoryProxyTest method shouldFindByAgeANDName.

@Test
public void shouldFindByAgeANDName() {
    Person ada = Person.builder().withAge(20).withName("Ada").build();
    when(template.select(Mockito.any(DocumentQuery.class))).thenReturn(singletonList(ada));
    Set<Person> persons = personRepository.findByAgeAndName(20, "name");
    ArgumentCaptor<DocumentQuery> captor = ArgumentCaptor.forClass(DocumentQuery.class);
    verify(template).select(captor.capture());
    assertThat(persons, Matchers.contains(ada));
}
Also used : DocumentQuery(org.jnosql.diana.api.document.DocumentQuery) Person(org.jnosql.artemis.model.Person) Test(org.junit.jupiter.api.Test)

Example 54 with Person

use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.

the class DocumentRepositoryProxyTest method shouldExecuteQuery.

@Test
public void shouldExecuteQuery() {
    ArgumentCaptor<DocumentQuery> captor = ArgumentCaptor.forClass(DocumentQuery.class);
    Person ada = Person.builder().withAge(20).withName("Ada").build();
    when(template.singleResult(Mockito.any(DocumentQuery.class))).thenReturn(Optional.of(ada));
    DocumentQuery query = select().from("Person").where("name").eq("Ada").build();
    Person person = personRepository.query(query);
    verify(template).singleResult(captor.capture());
    assertEquals(ada, person);
    assertEquals(query, captor.getValue());
}
Also used : DocumentQuery(org.jnosql.diana.api.document.DocumentQuery) Person(org.jnosql.artemis.model.Person) Test(org.junit.jupiter.api.Test)

Example 55 with Person

use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.

the class DocumentRepositoryProxyTest method shouldFindByAgeBetween.

@Test
public void shouldFindByAgeBetween() {
    Person ada = Person.builder().withAge(20).withName("Ada").build();
    when(template.select(any(DocumentQuery.class))).thenReturn(singletonList(ada));
    personRepository.findByAgeBetween(10, 15);
    ArgumentCaptor<DocumentQuery> captor = ArgumentCaptor.forClass(DocumentQuery.class);
    verify(template).select(captor.capture());
    DocumentQuery query = captor.getValue();
    DocumentCondition condition = query.getCondition().get();
    assertEquals("Person", query.getDocumentCollection());
    assertEquals(BETWEEN, condition.getCondition());
    assertEquals(Document.of("age", Arrays.asList(10, 15)), condition.getDocument());
}
Also used : DocumentQuery(org.jnosql.diana.api.document.DocumentQuery) Person(org.jnosql.artemis.model.Person) DocumentCondition(org.jnosql.diana.api.document.DocumentCondition) Test(org.junit.jupiter.api.Test)

Aggregations

Person (org.jnosql.artemis.model.Person)126 Test (org.junit.jupiter.api.Test)124 DocumentQuery (org.jnosql.diana.api.document.DocumentQuery)40 ColumnQuery (org.jnosql.diana.api.column.ColumnQuery)39 Consumer (java.util.function.Consumer)32 Duration (java.time.Duration)30 Collections.singletonList (java.util.Collections.singletonList)30 List (java.util.List)30 Optional (java.util.Optional)28 Inject (javax.inject.Inject)28 CDIExtension (org.jnosql.artemis.CDIExtension)28 Converters (org.jnosql.artemis.Converters)28 ClassRepresentations (org.jnosql.artemis.reflection.ClassRepresentations)28 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)28 Assertions.assertNotNull (org.junit.jupiter.api.Assertions.assertNotNull)28 BeforeEach (org.junit.jupiter.api.BeforeEach)28 ExtendWith (org.junit.jupiter.api.extension.ExtendWith)28 ArgumentCaptor (org.mockito.ArgumentCaptor)28 Mockito (org.mockito.Mockito)28 Mockito.verify (org.mockito.Mockito.verify)28