2 * This file is part of yosql. It is subject to the license terms in the LICENSE file found in the top-level
3 * directory of this distribution and at https://creativecommons.org/publicdomain/zero/1.0/. No part of yosql,
4 * including this file, may be copied, modified, propagated, or distributed except according to the terms contained
8 package wtf
.metio
.yosql
.codegen
.files
;
10 import org
.junit
.jupiter
.api
.BeforeEach
;
11 import org
.junit
.jupiter
.api
.Test
;
12 import wtf
.metio
.yosql
.models
.constants
.sql
.SqlType
;
13 import wtf
.metio
.yosql
.models
.immutables
.RepositoriesConfiguration
;
14 import wtf
.metio
.yosql
.models
.immutables
.SqlConfiguration
;
15 import wtf
.metio
.yosql
.testing
.configs
.RepositoriesConfigurations
;
17 import static org
.junit
.jupiter
.api
.Assertions
.*;
19 class DefaultMethodApiConfigurerTest
{
21 private DefaultMethodApiConfigurer configurer
;
22 private RepositoriesConfiguration repositories
;
26 repositories
= RepositoriesConfigurations
.defaults();
27 configurer
= new DefaultMethodApiConfigurer(repositories
);
32 final var original
= SqlConfiguration
.usingDefaults()
33 .setGenerateBatchApi(false)
35 final var adapted
= configurer
.batch(original
);
36 assertEquals(original
.generateBatchApi(), adapted
.generateBatchApi());
40 void batchChangedToRepositoryDefault() {
41 final var original
= SqlConfiguration
.usingDefaults()
42 // .setGenerateBatchApi(true) // value is NOT set
44 final var adapted
= configurer
.batch(original
);
45 assertTrue(adapted
.generateBatchApi().isPresent());
46 assertEquals(repositories
.generateBatchApi(), adapted
.generateBatchApi().get());
50 void batchForcedDisabledForReads() {
51 final var original
= SqlConfiguration
.usingDefaults()
52 .setGenerateBatchApi(true)
53 .setType(SqlType
.READING
)
55 final var adapted
= configurer
.batch(original
);
56 assertTrue(adapted
.generateBatchApi().isPresent());
57 assertFalse(adapted
.generateBatchApi().get());
62 final var original
= SqlConfiguration
.usingDefaults()
63 .setGenerateBlockingApi(false)
65 final var adapted
= configurer
.blocking(original
);
66 assertEquals(original
.generateBlockingApi(), adapted
.generateBlockingApi());
70 void blockingChangedToRepositoryDefault() {
71 final var original
= SqlConfiguration
.usingDefaults()
72 // .setGenerateBlockingApi(true) // value is NOT set
74 final var adapted
= configurer
.blocking(original
);
75 assertTrue(adapted
.generateBlockingApi().isPresent());
76 assertEquals(repositories
.generateBlockingApi(), adapted
.generateBlockingApi().get());
81 final var original
= SqlConfiguration
.usingDefaults()
82 .setGenerateMutinyApi(false)
84 final var adapted
= configurer
.mutiny(original
);
85 assertEquals(original
.generateMutinyApi(), adapted
.generateMutinyApi());
89 void mutinyChangedToRepositoryDefault() {
90 final var original
= SqlConfiguration
.usingDefaults()
91 // .setGenerateMutinyApi(true) // value is NOT set
93 final var adapted
= configurer
.mutiny(original
);
94 assertTrue(adapted
.generateMutinyApi().isPresent());
95 assertEquals(repositories
.generateMutinyApi(), adapted
.generateMutinyApi().get());
100 final var original
= SqlConfiguration
.usingDefaults()
101 .setGenerateReactorApi(false)
103 final var adapted
= configurer
.reactor(original
);
104 assertEquals(original
.generateReactorApi(), adapted
.generateReactorApi());
108 void reactorChangedToRepositoryDefault() {
109 final var original
= SqlConfiguration
.usingDefaults()
110 // .setGenerateReactorApi(true) // value is NOT set
112 final var adapted
= configurer
.reactor(original
);
113 assertTrue(adapted
.generateReactorApi().isPresent());
114 assertEquals(repositories
.generateReactorApi(), adapted
.generateReactorApi().get());
119 final var original
= SqlConfiguration
.usingDefaults()
120 .setGenerateRxJavaApi(false)
122 final var adapted
= configurer
.rxJava(original
);
123 assertEquals(original
.generateRxJavaApi(), adapted
.generateRxJavaApi());
127 void rxJavaChangedToRepositoryDefault() {
128 final var original
= SqlConfiguration
.usingDefaults()
129 // .setGenerateRxJavaApi(true) // value is NOT set
131 final var adapted
= configurer
.rxJava(original
);
132 assertTrue(adapted
.generateRxJavaApi().isPresent());
133 assertEquals(repositories
.generateRxJavaApi(), adapted
.generateRxJavaApi().get());
137 void streamEagerKeep() {
138 final var original
= SqlConfiguration
.usingDefaults()
139 .setGenerateStreamEagerApi(false)
141 final var adapted
= configurer
.streamEager(original
);
142 assertEquals(original
.generateStreamEagerApi(), adapted
.generateStreamEagerApi());
146 void streamEagerForcedDisabledForWrites() {
147 final var original
= SqlConfiguration
.usingDefaults()
148 .setGenerateStreamEagerApi(true)
149 .setType(SqlType
.WRITING
)
151 final var adapted
= configurer
.streamEager(original
);
152 assertTrue(adapted
.generateStreamEagerApi().isPresent());
153 assertFalse(adapted
.generateStreamEagerApi().get());
157 void streamEagerChangedToRepositoryDefault() {
158 final var original
= SqlConfiguration
.usingDefaults()
159 // .setGenerateStreamEagerApi(true) // value is NOT set
161 final var adapted
= configurer
.streamEager(original
);
162 assertTrue(adapted
.generateStreamEagerApi().isPresent());
163 assertEquals(repositories
.generateStreamEagerApi(), adapted
.generateStreamEagerApi().get());
167 void streamLazyKeep() {
168 final var original
= SqlConfiguration
.usingDefaults()
169 .setGenerateStreamLazyApi(false)
171 final var adapted
= configurer
.streamLazy(original
);
172 assertEquals(original
.generateStreamLazyApi(), adapted
.generateStreamLazyApi());
176 void streamLazyForcedDisabledForWrites() {
177 final var original
= SqlConfiguration
.usingDefaults()
178 .setGenerateStreamLazyApi(true)
179 .setType(SqlType
.WRITING
)
181 final var adapted
= configurer
.streamLazy(original
);
182 assertTrue(adapted
.generateStreamLazyApi().isPresent());
183 assertFalse(adapted
.generateStreamLazyApi().get());
187 void streamLazyChangedToRepositoryDefault() {
188 final var original
= SqlConfiguration
.usingDefaults()
189 // .setGenerateStreamLazyApi(true) // value is NOT set
191 final var adapted
= configurer
.streamLazy(original
);
192 assertTrue(adapted
.generateStreamLazyApi().isPresent());
193 assertEquals(repositories
.generateStreamLazyApi(), adapted
.generateStreamLazyApi().get());
198 final var original
= SqlConfiguration
.usingDefaults()
199 .setGenerateBatchApi(false)
200 .setGenerateBlockingApi(false)
201 .setGenerateMutinyApi(false)
202 .setGenerateReactorApi(false)
203 .setGenerateRxJavaApi(false)
204 .setGenerateStreamEagerApi(false)
205 .setGenerateStreamLazyApi(false)
207 final var adapted
= configurer
.configureApis(original
);
209 () -> assertEquals(original
.generateBatchApi(), adapted
.generateBatchApi()),
210 () -> assertEquals(original
.generateBlockingApi(), adapted
.generateBlockingApi()),
211 () -> assertEquals(original
.generateMutinyApi(), adapted
.generateMutinyApi()),
212 () -> assertEquals(original
.generateReactorApi(), adapted
.generateReactorApi()),
213 () -> assertEquals(original
.generateRxJavaApi(), adapted
.generateRxJavaApi()),
214 () -> assertEquals(original
.generateStreamLazyApi(), adapted
.generateStreamLazyApi()),
215 () -> assertEquals(original
.generateStreamLazyApi(), adapted
.generateStreamLazyApi()));
220 final var original
= SqlConfiguration
.usingDefaults().build();
221 final var adapted
= configurer
.configureApis(original
);
223 () -> assertEquals(repositories
.generateBatchApi(), adapted
.generateBatchApi().get()),
224 () -> assertEquals(repositories
.generateBlockingApi(), adapted
.generateBlockingApi().get()),
225 () -> assertEquals(repositories
.generateMutinyApi(), adapted
.generateMutinyApi().get()),
226 () -> assertEquals(repositories
.generateReactorApi(), adapted
.generateReactorApi().get()),
227 () -> assertEquals(repositories
.generateRxJavaApi(), adapted
.generateRxJavaApi().get()),
228 () -> assertEquals(repositories
.generateStreamLazyApi(), adapted
.generateStreamLazyApi().get()),
229 () -> assertEquals(repositories
.generateStreamLazyApi(), adapted
.generateStreamLazyApi().get()));