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
.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
;
28 generator
= new DefaultFields(
29 new DefaultAnnotationGenerator(AnnotationsConfigurations
.defaults(), ApiConfigurations
.defaults()),
30 JavaConfigurations
.defaults(),
31 NamesConfigurations
.defaults());
35 @DisplayName("creates fields")
36 void shouldCreateField() {
37 Assertions
.assertEquals("""
38 @javax.annotation.processing.Generated(
40 comments = "DO NOT MODIFY
- automatically generated by YoSQL
"
42 private final java.lang.String test;
43 """, generator
.field(String
.class, "test").toString());
47 @DisplayName("creates fields for TypeNames")
48 void shouldCreateFieldWithTypeName() {
49 Assertions
.assertEquals("""
50 @javax.annotation.processing.Generated(
52 comments = "DO NOT MODIFY
- automatically generated by YoSQL
"
54 private final boolean test;
55 """, generator
.field(TypeName
.BOOLEAN
, "test").toString());
59 void constantSqlStatementFieldName() {
61 final var config
= SqlConfiguration
.usingDefaults().setName("test").build();
64 final var constant
= generator
.constantSqlStatementFieldName(config
);
67 Assertions
.assertEquals("""
72 void constantSqlStatementFieldNameWithVendor() {
74 final var config
= SqlConfiguration
.usingDefaults().setName("test").setVendor("MyDB").build();
77 final var constant
= generator
.constantSqlStatementFieldName(config
);
80 Assertions
.assertEquals("""
81 TEST_MYDB""", constant
);
85 void constantRawSqlStatementFieldName() {
87 final var config
= SqlConfiguration
.usingDefaults().setName("test").build();
90 final var constant
= generator
.constantRawSqlStatementFieldName(config
);
93 Assertions
.assertEquals("""
94 TEST_RAW""", constant
);
98 void constantRawSqlStatementFieldNameWithVendor() {
100 final var config
= SqlConfiguration
.usingDefaults().setName("test").setVendor("MyDB").build();
103 final var constant
= generator
.constantRawSqlStatementFieldName(config
);
106 Assertions
.assertEquals("""
107 TEST_MYDB_RAW""", constant
);
111 void constantSqlStatementParameterIndexFieldName() {
113 final var config
= SqlConfiguration
.usingDefaults().setName("test").build();
116 final var constant
= generator
.constantSqlStatementParameterIndexFieldName(config
);
119 Assertions
.assertEquals("""
120 TEST_INDEX""", constant
);
124 void constantSqlStatementParameterIndexFieldNameWithVendor() {
126 final var config
= SqlConfiguration
.usingDefaults().setName("test").setVendor("MyDB").build();
129 final var constant
= generator
.constantSqlStatementParameterIndexFieldName(config
);
132 Assertions
.assertEquals("""
133 TEST_MYDB_INDEX""", constant
);