### Question:
ProviderType extends AbstractPluginSpecification { public static Builder builder() { return new Builder(); } private  ProviderType(BaseEntity.Builder baseBuilder,
                      Map<ParameterType, ParametersSpecification> parameters,
                      Map<String, ResourceTypeSpecification> resourceTypes); PluginFields groupFields(Map<String, Object> input); static Builder builder();  }### Answer:
@Test public void testGetMissingFields() throws IOException { ProviderType providerType = ProviderType.builder() .setParameters(ImmutableMap.of( ParameterType.ADMIN, new ParametersSpecification( ImmutableMap.of( "a1", FieldSchema.builder().setLabel("field1").setType("text").build(), "a2", FieldSchema.builder().setLabel("field2").setType("text").build(), "a3", FieldSchema.builder().setLabel("field3").setType("text").build()), ImmutableSet.<Set<String>>of( ImmutableSet.<String>of("a1"), ImmutableSet.<String>of("a2", "a3"), ImmutableSet.<String>of("a1", "a3") ) ), ParameterType.USER, new ParametersSpecification( ImmutableMap.of( "u1", FieldSchema.builder().setLabel("field1").setType("text").build(), "u2", FieldSchema.builder().setLabel("field2").setType("text").build(), "u3", FieldSchema.builder().setLabel("field3").setType("text").build()), ImmutableSet.<Set<String>>of() ) )) .setName("name") .build(); Assert.assertTrue(providerType.getMissingFields(ParameterType.ADMIN, ImmutableSet.of("a1")).isEmpty()); Assert.assertTrue(providerType.getMissingFields(ParameterType.ADMIN, ImmutableSet.of("a2", "a3")).isEmpty()); Assert.assertTrue(providerType.getMissingFields(ParameterType.ADMIN, ImmutableSet.of("a1", "a3")).isEmpty()); Assert.assertTrue(providerType.getMissingFields(ParameterType.ADMIN, ImmutableSet.of("a1", "a2", "a3")).isEmpty()); Assert.assertEquals( ImmutableList.of( ImmutableMap.of("a1", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a1")), ImmutableMap.of("a3", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a3")), ImmutableMap.of("a1", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a1"), "a3", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a3"))), providerType.getMissingFields(ParameterType.ADMIN, ImmutableSet.of("a2"))); Assert.assertEquals( ImmutableList.of( ImmutableMap.of("a1", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a1")), ImmutableMap.of("a2", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a2")), ImmutableMap.of("a1", providerType.getParametersSpecification(ParameterType.ADMIN).getFields().get("a1"))), providerType.getMissingFields(ParameterType.ADMIN, ImmutableSet.of("a3", "a3"))); Assert.assertTrue(providerType.getMissingFields(ParameterType.USER, ImmutableSet.<String>of()).isEmpty()); Assert.assertTrue(providerType.getMissingFields(ParameterType.USER, ImmutableSet.of("u1")).isEmpty()); }