Search in sources :

Example 1 with PhoneNumber

use of example.domain.PhoneNumber in project doma by domaframework.

the class ScalarsTest method testWrapDomain_option.

@SuppressWarnings("unchecked")
@Test
public void testWrapDomain_option() {
    PhoneNumber phoneNumber = new PhoneNumber("123-456-789");
    Supplier<Scalar<?, ?>> supplier = Scalars.wrap(phoneNumber, PhoneNumber.class, true, classHelper);
    assertNotNull(supplier);
    Scalar<?, ?> scalar = supplier.get();
    assertTrue(scalar.get() instanceof Optional);
    assertTrue(scalar.getAsNonOptional() instanceof PhoneNumber);
    Optional<PhoneNumber> optional = (Optional<PhoneNumber>) scalar.get();
    assertEquals(phoneNumber, optional.get());
    Wrapper<?> wrapper = scalar.getWrapper();
    assertEquals(StringWrapper.class, wrapper.getClass());
    assertEquals("123-456-789", wrapper.get());
}
Also used : Optional(java.util.Optional) PhoneNumber(example.domain.PhoneNumber) InternationalPhoneNumber(example.domain.InternationalPhoneNumber) Test(org.junit.jupiter.api.Test)

Example 2 with PhoneNumber

use of example.domain.PhoneNumber in project doma by domaframework.

the class PreparedSqlBuilderTest method testAppendParameter_domain.

@Test
public void testAppendParameter_domain() {
    PreparedSqlBuilder builder = new PreparedSqlBuilder(config, SqlKind.SELECT, SqlLogType.FORMATTED);
    builder.appendSql("select * from aaa where phoneNumber = ");
    DomainType<String, PhoneNumber> phoneNumberType = DomainTypeFactory.getDomainType(PhoneNumber.class, new ClassHelper() {
    });
    PhoneNumber phoneNumber = new PhoneNumber("03-1234-5678");
    builder.appendParameter(new DomainInParameter<>(phoneNumberType, phoneNumber));
    PreparedSql sql = builder.build(Function.identity());
    assertEquals("select * from aaa where phoneNumber = ?", sql.toString());
}
Also used : ClassHelper(org.seasar.doma.jdbc.ClassHelper) PreparedSql(org.seasar.doma.jdbc.PreparedSql) PhoneNumber(example.domain.PhoneNumber) Test(org.junit.jupiter.api.Test)

Example 3 with PhoneNumber

use of example.domain.PhoneNumber in project doma by domaframework.

the class ScalarInOutParameterTest method testGetDomainClass_optional.

@Test
public void testGetDomainClass_optional() {
    DomainType<String, PhoneNumber> domainType = DomainTypeFactory.getDomainType(PhoneNumber.class, new ClassHelper() {
    });
    Scalar<String, Optional<PhoneNumber>> scalar = domainType.createOptionalScalar();
    Reference<Optional<PhoneNumber>> ref = new Reference<>();
    ScalarInOutParameter<String, Optional<PhoneNumber>> parameter = new ScalarInOutParameter<>(scalar, ref);
    Optional<Class<?>> optional = parameter.getDomainClass();
    assertEquals(PhoneNumber.class, optional.get());
}
Also used : ClassHelper(org.seasar.doma.jdbc.ClassHelper) Optional(java.util.Optional) Reference(org.seasar.doma.jdbc.Reference) PhoneNumber(example.domain.PhoneNumber) Test(org.junit.jupiter.api.Test)

Example 4 with PhoneNumber

use of example.domain.PhoneNumber in project doma by domaframework.

the class ScalarInParameterTest method testGetDomainClass_optional.

@Test
public void testGetDomainClass_optional() {
    DomainType<String, PhoneNumber> domainType = DomainTypeFactory.getDomainType(PhoneNumber.class, new ClassHelper() {
    });
    Scalar<String, Optional<PhoneNumber>> scalar = domainType.createOptionalScalar();
    ScalarInParameter<String, Optional<PhoneNumber>> parameter = new ScalarInParameter<>(scalar);
    Optional<Class<?>> optional = parameter.getDomainClass();
    assertEquals(PhoneNumber.class, optional.get());
}
Also used : ClassHelper(org.seasar.doma.jdbc.ClassHelper) Optional(java.util.Optional) PhoneNumber(example.domain.PhoneNumber) Test(org.junit.jupiter.api.Test)

Example 5 with PhoneNumber

use of example.domain.PhoneNumber in project doma by domaframework.

the class ScalarProviderTest method testDomain.

@Test
public void testDomain() throws Exception {
    MockResultSetMetaData metaData = new MockResultSetMetaData();
    metaData.columns.add(new ColumnMetaData("aaa"));
    MockResultSet resultSet = new MockResultSet(metaData);
    resultSet.rows.add(new RowData("hoge"));
    resultSet.next();
    DomainType<String, PhoneNumber> domainType = _PhoneNumber.getSingletonInternal();
    ScalarProvider<String, PhoneNumber> provider = new ScalarProvider<>(domainType::createScalar, new MySelectQuery());
    PhoneNumber result = provider.get(resultSet);
    assertEquals("hoge", result.getValue());
}
Also used : RowData(org.seasar.doma.internal.jdbc.mock.RowData) MockResultSetMetaData(org.seasar.doma.internal.jdbc.mock.MockResultSetMetaData) PhoneNumber(example.domain.PhoneNumber) example.domain._PhoneNumber(example.domain._PhoneNumber) MockResultSet(org.seasar.doma.internal.jdbc.mock.MockResultSet) ColumnMetaData(org.seasar.doma.internal.jdbc.mock.ColumnMetaData) Test(org.junit.jupiter.api.Test)

Aggregations

PhoneNumber (example.domain.PhoneNumber)17 Test (org.junit.jupiter.api.Test)17 example.domain._PhoneNumber (example.domain._PhoneNumber)5 ColumnMetaData (org.seasar.doma.internal.jdbc.mock.ColumnMetaData)5 MockResultSet (org.seasar.doma.internal.jdbc.mock.MockResultSet)5 MockResultSetMetaData (org.seasar.doma.internal.jdbc.mock.MockResultSetMetaData)5 RowData (org.seasar.doma.internal.jdbc.mock.RowData)5 ClassHelper (org.seasar.doma.jdbc.ClassHelper)5 InternationalPhoneNumber (example.domain.InternationalPhoneNumber)4 Optional (java.util.Optional)4 MockConfig (org.seasar.doma.internal.jdbc.mock.MockConfig)4 SqlFileSelectQuery (org.seasar.doma.jdbc.query.SqlFileSelectQuery)3 Method (java.lang.reflect.Method)2 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 TestInfo (org.junit.jupiter.api.TestInfo)2 SqlFileUtil (org.seasar.doma.internal.jdbc.util.SqlFileUtil)2 NonUniqueResultException (org.seasar.doma.jdbc.NonUniqueResultException)2 PreparedSql (org.seasar.doma.jdbc.PreparedSql)2 Reference (org.seasar.doma.jdbc.Reference)2