public static DataSchema buildSchemaByProjection(DataSchema schema, DataMap maskMap)
  {
    return buildSchemaByProjection(schema, maskMap, Collections.emptyList());
  }
@Test(dataProvider = "provideBuildSchemaByProjectionData")
  public void testBuildSchemaByProjection(DataMap projectionMask, String[] expectedIncludedFields, String[] expectedExcludedFields)
  {
    DataSchema schema = DataTemplateUtil.getSchema(RecordTemplateWithPrimitiveKey.class);
    RecordDataSchema validatingSchema = (RecordDataSchema) buildSchemaByProjection(schema, projectionMask);

    for (String fieldName : expectedIncludedFields)
    {
      Assert.assertTrue(validatingSchema.contains(fieldName));
    }
    for (String fieldName : expectedExcludedFields)
    {
      Assert.assertFalse(validatingSchema.contains(fieldName));
    }
  }