Skip to content

Commit a85de20

Browse files
committed
test: update shouldNot in
Signed-off-by: Otavio Santana <[email protected]>
1 parent 07eeec1 commit a85de20

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

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

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
import jakarta.data.constraint.GreaterThan;
1818
import jakarta.data.constraint.In;
1919
import jakarta.data.constraint.LessThan;
20+
import jakarta.data.constraint.NotIn;
2021
import jakarta.data.repository.By;
2122
import jakarta.data.repository.CrudRepository;
2223
import jakarta.data.repository.Find;
2324
import jakarta.data.repository.Is;
2425
import jakarta.inject.Inject;
2526
import org.assertj.core.api.SoftAssertions;
27+
import org.eclipse.jnosql.communication.Condition;
2628
import org.eclipse.jnosql.communication.semistructured.CriteriaCondition;
2729
import org.eclipse.jnosql.communication.semistructured.Element;
2830
import org.eclipse.jnosql.communication.semistructured.SelectQuery;
@@ -52,6 +54,7 @@
5254
import static org.eclipse.jnosql.communication.Condition.GREATER_THAN;
5355
import static org.eclipse.jnosql.communication.Condition.IN;
5456
import static org.eclipse.jnosql.communication.Condition.LESSER_THAN;
57+
import static org.eclipse.jnosql.communication.Condition.NOT;
5558
import static org.mockito.Mockito.any;
5659
import static org.mockito.Mockito.verify;
5760
import static org.mockito.Mockito.when;
@@ -110,6 +113,28 @@ void shouldEquals() {
110113
});
111114
}
112115

116+
117+
@Test
118+
void shouldDefaultMethod() {
119+
120+
when(template.select(any(SelectQuery.class)))
121+
.thenReturn(Stream.of(new Product()));
122+
123+
repository.defaultMethod("Mac");
124+
ArgumentCaptor<SelectQuery> captor = ArgumentCaptor.forClass(SelectQuery.class);
125+
verify(template).select(captor.capture());
126+
SelectQuery query = captor.getValue();
127+
128+
SoftAssertions.assertSoftly(softly -> {
129+
softly.assertThat(query.name()).isEqualTo("Product");
130+
softly.assertThat(query.condition()).isPresent();
131+
CriteriaCondition condition = query.condition().orElseThrow();
132+
softly.assertThat(condition).isInstanceOf(CriteriaCondition.class);
133+
softly.assertThat(condition.condition()).isEqualTo(EQUALS);
134+
softly.assertThat(condition.element()).isEqualTo(Element.of(_Product.NAME, "Mac"));
135+
});
136+
}
137+
113138
@Test
114139
void shouldAtLeast() {
115140

@@ -173,8 +198,35 @@ void shouldIn() {
173198
});
174199
}
175200

201+
@Test
202+
void shouldNotIn() {
203+
204+
when(template.select(any(SelectQuery.class)))
205+
.thenReturn(Stream.of(new Product()));
206+
207+
repository.notIn(List.of("Mac", "Iphone"));
208+
ArgumentCaptor<SelectQuery> captor = ArgumentCaptor.forClass(SelectQuery.class);
209+
verify(template).select(captor.capture());
210+
SelectQuery query = captor.getValue();
211+
212+
SoftAssertions.assertSoftly(softly -> {
213+
softly.assertThat(query.name()).isEqualTo("Product");
214+
softly.assertThat(query.condition()).isPresent();
215+
CriteriaCondition condition = query.condition().orElseThrow();
216+
softly.assertThat(condition).isInstanceOf(CriteriaCondition.class);
217+
softly.assertThat(condition.condition()).isEqualTo(NOT);
218+
var criteriaCondition = condition.element().get(CriteriaCondition.class);
219+
softly.assertThat(criteriaCondition.condition()).isEqualTo(IN);
220+
softly.assertThat(criteriaCondition.element()).isEqualTo(Element.of(_Product.NAME, List.of("Mac", "Iphone")));
221+
});
222+
}
223+
224+
176225

177226
public interface ProductRepository extends CrudRepository<Product, String> {
227+
@Find
228+
List<Product> defaultMethod(@By(_Product.NAME) String name);
229+
178230
@Find
179231
List<Product> equals(@By(_Product.NAME) @Is String name);
180232

@@ -186,6 +238,9 @@ public interface ProductRepository extends CrudRepository<Product, String> {
186238

187239
@Find
188240
List<Product> in(@By(_Product.NAME) @Is(In.class) List<String> names);
241+
242+
@Find
243+
List<Product> notIn(@By(_Product.NAME) @Is(NotIn.class) List<String> names);
189244
}
190245

191246
}

0 commit comments

Comments
 (0)