### Question:
DefaultPropertyType implements EntityPropertyType<ENTITY, BASIC> { @Override public Property<ENTITY, BASIC> createProperty() { return new DefaultProperty(); } DefaultPropertyType(
      Class<ENTITY> entityClass,
      Supplier<Scalar<BASIC, CONTAINER>> scalarSupplier,
      String name,
      String columnName,
      NamingType namingType,
      boolean insertable,
      boolean updatable,
      boolean quoteRequired); @Override Property<ENTITY, BASIC> createProperty(); @Override void copy(ENTITY destEntity, ENTITY srcEntity); @Override String getName(); @Override String getColumnName(); @Override String getColumnName(Function<String, String> quoteFunction); @Override String getColumnName(BiFunction<NamingType, String, String> namingFunction); String getColumnName(
      BiFunction<NamingType, String, String> namingFunction,
      Function<String, String> quoteFunction); @Override boolean isQuoteRequired(); @Override boolean isId(); @Override boolean isVersion(); @Override boolean isTenantId(); @Override boolean isInsertable(); @Override boolean isUpdatable();  }### Answer:
@Test public void testPrimitivePropertyDefaultValue() { DefaultPropertyType<DefaultPropertyTypeTest, Integer, Integer> propertyType = new DefaultPropertyType<>( DefaultPropertyTypeTest.class, () -> new BasicScalar<>(PrimitiveIntWrapper::new), "primitiveInt", "primitiveInt", NamingType.NONE, true, true, false); Property<DefaultPropertyTypeTest, Integer> property = propertyType.createProperty(); assertEquals(0, property.get()); }
@Test public void testWrapperPropertyDefaultValue() { DefaultPropertyType<DefaultPropertyTypeTest, Integer, Integer> propertyType = new DefaultPropertyType<>( DefaultPropertyTypeTest.class, () -> new BasicScalar<>(IntegerWrapper::new), "integer", "integer", NamingType.NONE, true, true, false); Property<DefaultPropertyTypeTest, Integer> property = propertyType.createProperty(); assertNull(property.get()); }