|
22 | 22 | import lombok.NoArgsConstructor; |
23 | 23 | import lombok.Setter; |
24 | 24 | import org.junit.jupiter.api.Test; |
| 25 | +import ru.rt.restream.reindexer.EnumType; |
25 | 26 | import ru.rt.restream.reindexer.Namespace; |
26 | 27 | import ru.rt.restream.reindexer.NamespaceOptions; |
27 | 28 | import ru.rt.restream.reindexer.QueryResultJsonIterator; |
28 | 29 | import ru.rt.restream.reindexer.ResultIterator; |
29 | 30 | import ru.rt.restream.reindexer.Transaction; |
| 31 | +import ru.rt.restream.reindexer.annotations.Enumerated; |
30 | 32 | import ru.rt.restream.reindexer.annotations.Reindex; |
31 | 33 | import ru.rt.restream.reindexer.annotations.Serial; |
32 | 34 | import ru.rt.restream.reindexer.db.DbBaseTest; |
@@ -2774,6 +2776,51 @@ public void testIsAppendableIndexItem() { |
2774 | 2776 | assertThat(iterator.hasNext(), is(false)); |
2775 | 2777 | } |
2776 | 2778 |
|
| 2779 | + @Test |
| 2780 | + public void testTestItemEnumString() { |
| 2781 | + String namespaceName = "items"; |
| 2782 | + db.openNamespace(namespaceName, NamespaceOptions.defaultOptions(), TestItemEnumString.class); |
| 2783 | + db.upsert(namespaceName, new TestItemEnumString(1, "TestName", TestEnum.TEST_CONSTANT)); |
| 2784 | + Iterator<TestItemEnumString> iterator = db.query(namespaceName, TestItemEnumString.class) |
| 2785 | + .where("testEnumString", EQ, TestEnum.TEST_CONSTANT.name()) |
| 2786 | + .execute(); |
| 2787 | + assertThat(iterator.hasNext(), is(true)); |
| 2788 | + TestItemEnumString foundByEnumString = iterator.next(); |
| 2789 | + assertThat(foundByEnumString.id, is(1)); |
| 2790 | + assertThat(foundByEnumString.name, is("TestName")); |
| 2791 | + assertThat(foundByEnumString.testEnum, is(TestEnum.TEST_CONSTANT)); |
| 2792 | + } |
| 2793 | + |
| 2794 | + @Test |
| 2795 | + public void testTestItemEnumOrdinal() { |
| 2796 | + String namespaceName = "items"; |
| 2797 | + db.openNamespace(namespaceName, NamespaceOptions.defaultOptions(), TestItemEnumOrdinal.class); |
| 2798 | + db.upsert(namespaceName, new TestItemEnumOrdinal(1, "TestName", TestEnum.TEST_CONSTANT)); |
| 2799 | + Iterator<TestItemEnumOrdinal> iterator = db.query(namespaceName, TestItemEnumOrdinal.class) |
| 2800 | + .where("testEnum", EQ, TestEnum.TEST_CONSTANT.ordinal()) |
| 2801 | + .execute(); |
| 2802 | + assertThat(iterator.hasNext(), is(true)); |
| 2803 | + TestItemEnumOrdinal foundByEnumOrdinal = iterator.next(); |
| 2804 | + assertThat(foundByEnumOrdinal.id, is(1)); |
| 2805 | + assertThat(foundByEnumOrdinal.name, is("TestName")); |
| 2806 | + assertThat(foundByEnumOrdinal.testEnum, is(TestEnum.TEST_CONSTANT)); |
| 2807 | + } |
| 2808 | + |
| 2809 | + @Test |
| 2810 | + public void testTestItemEnumDefault() { |
| 2811 | + String namespaceName = "items"; |
| 2812 | + db.openNamespace(namespaceName, NamespaceOptions.defaultOptions(), TestItemEnumDefault.class); |
| 2813 | + db.upsert(namespaceName, new TestItemEnumDefault(1, "TestName", TestEnum.TEST_CONSTANT)); |
| 2814 | + Iterator<TestItemEnumDefault> iterator = db.query(namespaceName, TestItemEnumDefault.class) |
| 2815 | + .where("testEnum", EQ, TestEnum.TEST_CONSTANT.ordinal()) |
| 2816 | + .execute(); |
| 2817 | + assertThat(iterator.hasNext(), is(true)); |
| 2818 | + TestItemEnumDefault foundByEnumOrdinal = iterator.next(); |
| 2819 | + assertThat(foundByEnumOrdinal.id, is(1)); |
| 2820 | + assertThat(foundByEnumOrdinal.name, is("TestName")); |
| 2821 | + assertThat(foundByEnumOrdinal.testEnum, is(TestEnum.TEST_CONSTANT)); |
| 2822 | + } |
| 2823 | + |
2777 | 2824 | @Getter |
2778 | 2825 | @Setter |
2779 | 2826 | public static class SerialIdTestItem { |
@@ -2877,4 +2924,55 @@ public static class ItemWithAppendableIndexes { |
2877 | 2924 | @Reindex(name = "name", isAppendable = true, type = TEXT) |
2878 | 2925 | private String description; |
2879 | 2926 | } |
| 2927 | + |
| 2928 | + @Getter |
| 2929 | + @Setter |
| 2930 | + @NoArgsConstructor |
| 2931 | + @AllArgsConstructor |
| 2932 | + public static class TestItemEnumString { |
| 2933 | + @Reindex(name = "id", isPrimaryKey = true) |
| 2934 | + private Integer id; |
| 2935 | + |
| 2936 | + @Reindex(name = "name") |
| 2937 | + private String name; |
| 2938 | + |
| 2939 | + @Enumerated(EnumType.STRING) |
| 2940 | + @Reindex(name = "testEnumString") |
| 2941 | + private TestEnum testEnum; |
| 2942 | + } |
| 2943 | + |
| 2944 | + @Getter |
| 2945 | + @Setter |
| 2946 | + @NoArgsConstructor |
| 2947 | + @AllArgsConstructor |
| 2948 | + public static class TestItemEnumOrdinal { |
| 2949 | + @Reindex(name = "id", isPrimaryKey = true) |
| 2950 | + private Integer id; |
| 2951 | + |
| 2952 | + @Reindex(name = "name") |
| 2953 | + private String name; |
| 2954 | + |
| 2955 | + @Enumerated(EnumType.ORDINAL) |
| 2956 | + @Reindex(name = "testEnumOrdinal") |
| 2957 | + private TestEnum testEnum; |
| 2958 | + } |
| 2959 | + |
| 2960 | + @Getter |
| 2961 | + @Setter |
| 2962 | + @NoArgsConstructor |
| 2963 | + @AllArgsConstructor |
| 2964 | + public static class TestItemEnumDefault { |
| 2965 | + @Reindex(name = "id", isPrimaryKey = true) |
| 2966 | + private Integer id; |
| 2967 | + |
| 2968 | + @Reindex(name = "name") |
| 2969 | + private String name; |
| 2970 | + |
| 2971 | + @Reindex(name = "testEnum") |
| 2972 | + private TestEnum testEnum; |
| 2973 | + } |
| 2974 | + |
| 2975 | + public enum TestEnum { |
| 2976 | + TEST_CONSTANT |
| 2977 | + } |
2880 | 2978 | } |
0 commit comments