|
|
@@ -0,0 +1,95 @@
|
|
|
+package net.ranides.assira.collection.query;
|
|
|
+
|
|
|
+import net.ranides.test.CQueryAssert;
|
|
|
+import org.junit.Assert;
|
|
|
+import org.junit.Test;
|
|
|
+
|
|
|
+import net.ranides.assira.collection.iterators.EnumerationUtils;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.Random;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.stream.Stream;
|
|
|
+import java.util.stream.StreamSupport;
|
|
|
+
|
|
|
+import static org.junit.Assert.*;
|
|
|
+
|
|
|
+public class CQueryBuilderTest {
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromEmpty() {
|
|
|
+ CQueryAssert.assertEquals(Collections.emptyList(), CQuery.from().empty());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromOptional() {
|
|
|
+ CQueryAssert.assertEquals(Collections.emptyList(), CQuery.from().optional(null));
|
|
|
+ CQueryAssert.assertEquals(Collections.singletonList(1), CQuery.from().optional(1));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromValue() {
|
|
|
+ CQueryAssert.assertEquals(Collections.singletonList(1), CQuery.from().value(1));
|
|
|
+ CQueryAssert.assertEqualsNull(Collections.singletonList(null), CQuery.from().value(null));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromIterable() {
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().iterable(Arrays.asList(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().iterable(() -> Arrays.asList(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().iterable(3, (a) -> Arrays.asList(1,2,a)));
|
|
|
+
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().collection(Arrays.asList(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().collection(() -> Arrays.asList(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().collection(3, (a) -> Arrays.asList(1,2,a)));
|
|
|
+
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().list(Arrays.asList(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().list(() -> Arrays.asList(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().list(3, (a) -> Arrays.asList(1,2,a)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromArray() {
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().array(new int[]{1,2,3}));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().array(new Integer[]{1,2,3}));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().array(() -> new Integer[]{1,2,3}));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().array(3, (a) -> new Integer[]{1,2,a}));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromStream() {
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().stream(() -> Stream.of(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().stream(3, (a) -> Stream.of(1,2,a)));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromEnumeration() {
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().enumeration(() -> EnumerationUtils.of(1,2,3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().enumeration(3, (a) -> EnumerationUtils.of(1,2,a)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromSpliterator() {
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().spliterator(() -> Arrays.asList(1,2,3).spliterator()));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromQuery() {
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().query(() -> CQuery.from().values(1, 2, 3)));
|
|
|
+ CQueryAssert.assertEquals(Arrays.asList(1,2,3), CQuery.from().query(3, (a) -> CQuery.from().values(1, 2, a)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void fromInfinite() {
|
|
|
+ Random r = new Random(7);
|
|
|
+ CQuery<Integer> infinite = CQuery.from()
|
|
|
+ .infinite(() -> r.nextInt(10))
|
|
|
+ .limit(5);
|
|
|
+ Assert.assertEquals(Arrays.asList(6, 4, 5, 4, 0), infinite.list());
|
|
|
+ Assert.assertEquals(Arrays.asList(4, 8, 9, 0, 4), infinite.list());
|
|
|
+ Assert.assertEquals(Arrays.asList(0, 2, 8, 1, 5), infinite.list());
|
|
|
+ }
|
|
|
+}
|