Skip to content

Commit 07eeec1

Browse files
committed
test: include crud repository proxy
Signed-off-by: Otavio Santana <[email protected]>
1 parent c2475ce commit 07eeec1

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

jnosql-mapping/jnosql-mapping-semistructured/src/test/java/org/eclipse/jnosql/mapping/semistructured/query/CrudRepositoryProxyIsTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package org.eclipse.jnosql.mapping.semistructured.query;
1616

1717
import jakarta.data.constraint.GreaterThan;
18+
import jakarta.data.constraint.In;
19+
import jakarta.data.constraint.LessThan;
1820
import jakarta.data.repository.By;
1921
import jakarta.data.repository.CrudRepository;
2022
import jakarta.data.repository.Find;
@@ -48,6 +50,8 @@
4850

4951
import static org.eclipse.jnosql.communication.Condition.EQUALS;
5052
import static org.eclipse.jnosql.communication.Condition.GREATER_THAN;
53+
import static org.eclipse.jnosql.communication.Condition.IN;
54+
import static org.eclipse.jnosql.communication.Condition.LESSER_THAN;
5155
import static org.mockito.Mockito.any;
5256
import static org.mockito.Mockito.verify;
5357
import static org.mockito.Mockito.when;
@@ -127,13 +131,61 @@ void shouldAtLeast() {
127131
});
128132
}
129133

134+
@Test
135+
void shouldLesser() {
136+
137+
when(template.select(any(SelectQuery.class)))
138+
.thenReturn(Stream.of(new Product()));
139+
140+
repository.lesserThan(BigDecimal.TEN);
141+
ArgumentCaptor<SelectQuery> captor = ArgumentCaptor.forClass(SelectQuery.class);
142+
verify(template).select(captor.capture());
143+
SelectQuery query = captor.getValue();
144+
145+
SoftAssertions.assertSoftly(softly -> {
146+
softly.assertThat(query.name()).isEqualTo("Product");
147+
softly.assertThat(query.condition()).isPresent();
148+
CriteriaCondition condition = query.condition().orElseThrow();
149+
softly.assertThat(condition).isInstanceOf(CriteriaCondition.class);
150+
softly.assertThat(condition.condition()).isEqualTo(LESSER_THAN);
151+
softly.assertThat(condition.element()).isEqualTo(Element.of(_Product.PRICE, BigDecimal.TEN));
152+
});
153+
}
154+
155+
@Test
156+
void shouldIn() {
157+
158+
when(template.select(any(SelectQuery.class)))
159+
.thenReturn(Stream.of(new Product()));
160+
161+
repository.in(List.of("Mac", "Iphone"));
162+
ArgumentCaptor<SelectQuery> captor = ArgumentCaptor.forClass(SelectQuery.class);
163+
verify(template).select(captor.capture());
164+
SelectQuery query = captor.getValue();
165+
166+
SoftAssertions.assertSoftly(softly -> {
167+
softly.assertThat(query.name()).isEqualTo("Product");
168+
softly.assertThat(query.condition()).isPresent();
169+
CriteriaCondition condition = query.condition().orElseThrow();
170+
softly.assertThat(condition).isInstanceOf(CriteriaCondition.class);
171+
softly.assertThat(condition.condition()).isEqualTo(IN);
172+
softly.assertThat(condition.element()).isEqualTo(Element.of(_Product.NAME, List.of("Mac", "Iphone")));
173+
});
174+
}
175+
130176

131177
public interface ProductRepository extends CrudRepository<Product, String> {
132178
@Find
133179
List<Product> equals(@By(_Product.NAME) @Is String name);
134180

135181
@Find
136182
List<Product> greaterThan(@By(_Product.PRICE) @Is(GreaterThan.class) BigDecimal price);
183+
184+
@Find
185+
List<Product> lesserThan(@By(_Product.PRICE) @Is(LessThan.class) BigDecimal price);
186+
187+
@Find
188+
List<Product> in(@By(_Product.NAME) @Is(In.class) List<String> names);
137189
}
138190

139191
}

0 commit comments

Comments
 (0)