2727import org .junit .jupiter .api .Test ;
2828import org .mybatis .dynamic .sql .delete .DeleteDSLCompleter ;
2929import org .mybatis .dynamic .sql .delete .render .DeleteStatementProvider ;
30+ import org .mybatis .dynamic .sql .insert .render .GeneralInsertStatementProvider ;
3031import org .mybatis .dynamic .sql .render .RenderingStrategies ;
3132import org .mybatis .dynamic .sql .select .CountDSLCompleter ;
3233import org .mybatis .dynamic .sql .select .SelectDSLCompleter ;
4243import java .util .Objects ;
4344import java .util .Optional ;
4445
46+ import static examples .simple .AddressDynamicSqlSupport .address ;
4547import static examples .simple .PersonDynamicSqlSupport .addressId ;
4648import static examples .simple .PersonDynamicSqlSupport .birthDate ;
4749import static examples .simple .PersonDynamicSqlSupport .employed ;
5254import static examples .simple .PersonDynamicSqlSupport .person ;
5355import static org .assertj .core .api .Assertions .assertThat ;
5456import static org .junit .jupiter .api .Assertions .assertAll ;
55- import static org .mybatis .dynamic .sql .SqlBuilder .deleteFrom ;
56- import static org .mybatis .dynamic .sql .SqlBuilder .isEqualTo ;
57- import static org .mybatis .dynamic .sql .SqlBuilder .isFalse ;
58- import static org .mybatis .dynamic .sql .SqlBuilder .isGreaterThan ;
59- import static org .mybatis .dynamic .sql .SqlBuilder .isIn ;
60- import static org .mybatis .dynamic .sql .SqlBuilder .isLike ;
61- import static org .mybatis .dynamic .sql .SqlBuilder .isNotLike ;
62- import static org .mybatis .dynamic .sql .SqlBuilder .isNull ;
63- import static org .mybatis .dynamic .sql .SqlBuilder .isTrue ;
64- import static org .mybatis .dynamic .sql .SqlBuilder .or ;
65- import static org .mybatis .dynamic .sql .SqlBuilder .select ;
57+ import static org .mybatis .dynamic .sql .SqlBuilder .*;
6658
6759class PersonMapperTest {
6860
@@ -86,6 +78,7 @@ void setup() throws Exception {
8678 Configuration config = new Configuration (environment );
8779 config .addMapper (PersonMapper .class );
8880 config .addMapper (PersonWithAddressMapper .class );
81+ config .addMapper (AddressMapper .class );
8982 sqlSessionFactory = new SqlSessionFactoryBuilder ().build (config );
9083 }
9184
@@ -650,6 +643,9 @@ void testJoinAllRows() {
650643 assertThat (records .get (0 ).getAddress ().getStreetAddress ()).isEqualTo ("123 Main Street" );
651644 assertThat (records .get (0 ).getAddress ().getCity ()).isEqualTo ("Bedrock" );
652645 assertThat (records .get (0 ).getAddress ().getState ()).isEqualTo ("IN" );
646+ assertThat (records .get (0 ).getAddress ().getAddressType ()).isEqualTo (AddressRecord .AddressType .HOME );
647+
648+ assertThat (records .get (4 ).getAddress ().getAddressType ()).isEqualTo (AddressRecord .AddressType .BUSINESS );
653649 }
654650 }
655651
@@ -723,4 +719,32 @@ void testJoinCountWithSubcriteria() {
723719 assertThat (count ).isEqualTo (1 );
724720 }
725721 }
722+
723+ @ Test
724+ void testWithEnumOrdinalTypeHandler () {
725+ try (SqlSession session = sqlSessionFactory .openSession ()) {
726+ AddressMapper mapper = session .getMapper (AddressMapper .class );
727+
728+ GeneralInsertStatementProvider insertStatement = insertInto (address )
729+ .set (address .id ).toValue (4 )
730+ .set (address .streetAddress ).toValue ("987 Elm Street" )
731+ .set (address .city ).toValue ("Mayberry" )
732+ .set (address .state ).toValue ("NC" )
733+ .set (address .addressType ).toValue (AddressRecord .AddressType .HOME )
734+ .build ()
735+ .render (RenderingStrategies .MYBATIS3 );
736+
737+ int rows = mapper .generalInsert (insertStatement );
738+ assertThat (rows ).isEqualTo (1 );
739+
740+ SelectStatementProvider selectStatement = select (address .addressType )
741+ .from (address )
742+ .where (address .id , isEqualTo (4 ))
743+ .build ()
744+ .render (RenderingStrategies .MYBATIS3 );
745+
746+ Optional <Integer > type = mapper .selectOptionalInteger (selectStatement );
747+ assertThat (type ).hasValueSatisfying (i -> assertThat (i ).isEqualTo (0 ));
748+ }
749+ }
726750}
0 commit comments