fix build
[yosql.git] / yosql-codegen / yosql-codegen-blocks / src / test / java / wtf / metio / yosql / codegen / blocks / DefaultFieldsTest.java
blob6547d83104980094cb397b53aa559e43764b04b1
1 /*
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
5 * in the LICENSE file.
6 */
8 package wtf.metio.yosql.codegen.blocks;
10 import com.squareup.javapoet.TypeName;
11 import org.junit.jupiter.api.Assertions;
12 import org.junit.jupiter.api.BeforeEach;
13 import org.junit.jupiter.api.DisplayName;
14 import org.junit.jupiter.api.Test;
15 import wtf.metio.yosql.models.immutables.SqlConfiguration;
16 import wtf.metio.yosql.testing.configs.AnnotationsConfigurations;
17 import wtf.metio.yosql.testing.configs.ApiConfigurations;
18 import wtf.metio.yosql.testing.configs.JavaConfigurations;
19 import wtf.metio.yosql.testing.configs.NamesConfigurations;
21 @DisplayName("DefaultFields")
22 class DefaultFieldsTest {
24 private DefaultFields generator;
26 @BeforeEach
27 void setUp() {
28 generator = new DefaultFields(
29 new DefaultAnnotationGenerator(AnnotationsConfigurations.defaults(), ApiConfigurations.defaults()),
30 JavaConfigurations.defaults(),
31 NamesConfigurations.defaults());
34 @Test
35 @DisplayName("creates fields")
36 void shouldCreateField() {
37 Assertions.assertEquals("""
38 @javax.annotation.processing.Generated(
39 value = "YoSQL",
40 comments = "DO NOT MODIFY - automatically generated by YoSQL"
42 private final java.lang.String test;
43 """, generator.field(String.class, "test").toString());
46 @Test
47 @DisplayName("creates fields for TypeNames")
48 void shouldCreateFieldWithTypeName() {
49 Assertions.assertEquals("""
50 @javax.annotation.processing.Generated(
51 value = "YoSQL",
52 comments = "DO NOT MODIFY - automatically generated by YoSQL"
54 private final boolean test;
55 """, generator.field(TypeName.BOOLEAN, "test").toString());
58 @Test
59 void constantSqlStatementFieldName() {
60 // given
61 final var config = SqlConfiguration.usingDefaults().setName("test").build();
63 // when
64 final var constant = generator.constantSqlStatementFieldName(config);
66 // then
67 Assertions.assertEquals("""
68 TEST""", constant);
71 @Test
72 void constantSqlStatementFieldNameWithVendor() {
73 // given
74 final var config = SqlConfiguration.usingDefaults().setName("test").setVendor("MyDB").build();
76 // when
77 final var constant = generator.constantSqlStatementFieldName(config);
79 // then
80 Assertions.assertEquals("""
81 TEST_MYDB""", constant);
84 @Test
85 void constantRawSqlStatementFieldName() {
86 // given
87 final var config = SqlConfiguration.usingDefaults().setName("test").build();
89 // when
90 final var constant = generator.constantRawSqlStatementFieldName(config);
92 // then
93 Assertions.assertEquals("""
94 TEST_RAW""", constant);
97 @Test
98 void constantRawSqlStatementFieldNameWithVendor() {
99 // given
100 final var config = SqlConfiguration.usingDefaults().setName("test").setVendor("MyDB").build();
102 // when
103 final var constant = generator.constantRawSqlStatementFieldName(config);
105 // then
106 Assertions.assertEquals("""
107 TEST_MYDB_RAW""", constant);
110 @Test
111 void constantSqlStatementParameterIndexFieldName() {
112 // given
113 final var config = SqlConfiguration.usingDefaults().setName("test").build();
115 // when
116 final var constant = generator.constantSqlStatementParameterIndexFieldName(config);
118 // then
119 Assertions.assertEquals("""
120 TEST_INDEX""", constant);
123 @Test
124 void constantSqlStatementParameterIndexFieldNameWithVendor() {
125 // given
126 final var config = SqlConfiguration.usingDefaults().setName("test").setVendor("MyDB").build();
128 // when
129 final var constant = generator.constantSqlStatementParameterIndexFieldName(config);
131 // then
132 Assertions.assertEquals("""
133 TEST_MYDB_INDEX""", constant);