@Test
public void test_boolean_xor_null() {

  FunctionExpression xor =
      dsl.xor(DSL.literal(LITERAL_TRUE), DSL.ref(BOOL_TYPE_NULL_VALUE_FIELD, BOOLEAN));
  assertEquals(BOOLEAN, xor.type());
  assertEquals(LITERAL_TRUE, xor.valueOf(valueEnv()));
  xor = dsl.xor(DSL.ref(BOOL_TYPE_NULL_VALUE_FIELD, BOOLEAN), DSL.literal(LITERAL_TRUE));
  assertEquals(BOOLEAN, xor.type());
  assertEquals(LITERAL_TRUE, xor.valueOf(valueEnv()));
  xor = dsl.xor(DSL.literal(LITERAL_FALSE), DSL.ref(BOOL_TYPE_NULL_VALUE_FIELD, BOOLEAN));
  assertEquals(BOOLEAN, xor.type());
  assertEquals(LITERAL_NULL, xor.valueOf(valueEnv()));
  xor = dsl.xor(DSL.ref(BOOL_TYPE_NULL_VALUE_FIELD, BOOLEAN), DSL.literal(LITERAL_FALSE));
  assertEquals(BOOLEAN, xor.type());
  assertEquals(LITERAL_NULL, xor.valueOf(valueEnv()));
}