### Question:
ViewRegistry { public void addInstanceDefinition(ViewEntity definition, ViewInstanceEntity instanceDefinition) { Map<String, ViewInstanceEntity> instanceDefinitions = viewInstanceDefinitions.get(definition); if (instanceDefinitions == null) { instanceDefinitions = new HashMap<>(); viewInstanceDefinitions.put(definition, instanceDefinitions); } View view = definition.getView(); if (view != null) { view.onCreate(instanceDefinition); } instanceDefinitions.put(instanceDefinition.getName(), instanceDefinition); } @Inject  ViewRegistry(AmbariEventPublisher publisher); static void main(String[] args); Collection<ViewEntity> getDefinitions(); ViewEntity getDefinition(String viewName, String version); ViewEntity getDefinition(ResourceTypeEntity resourceTypeEntity); void addDefinition(ViewEntity definition); Collection<ViewInstanceEntity> getInstanceDefinitions(ViewEntity definition); ViewInstanceEntity getInstanceDefinition(String viewName, String version, String instanceName); void addInstanceDefinition(ViewEntity definition, ViewInstanceEntity instanceDefinition); void removeInstanceDefinition(ViewEntity definition, String instanceName); static void initInstance(ViewRegistry singleton); static ViewRegistry getInstance(); Set<SubResourceDefinition> getSubResourceDefinitions(
      String viewName, String version); void readViewArchives(); void readViewArchives(String viewNameRegExp); boolean instanceExists(ViewInstanceEntity instanceEntity); void installViewInstance(ViewInstanceEntity instanceEntity); void updateViewInstance(ViewInstanceEntity instanceEntity); void updateView(ViewInstanceEntity instanceEntity); ViewInstanceEntity getViewInstanceEntity(String viewName, String instanceName); @Transactional void uninstallViewInstance(ViewInstanceEntity instanceEntity); @Transactional void removeInstanceData(ViewInstanceEntity instanceEntity, String key); @Transactional void copyPrivileges(ViewInstanceEntity sourceInstanceEntity,
                             ViewInstanceEntity targetInstanceEntity); void fireEvent(Event event); synchronized void registerListener(Listener listener, String viewName, String viewVersion); synchronized void unregisterListener(Listener listener, String viewName, String viewVersion); boolean hasPermission(PermissionEntity permissionEntity, ResourceEntity resourceEntity, String userName); boolean checkPermission(String viewName, String version, String instanceName, boolean readOnly); boolean checkPermission(ViewInstanceEntity instanceEntity, boolean readOnly); boolean checkAdmin(); boolean includeDefinition(ViewEntity definitionEntity); void setViewInstanceProperties(ViewInstanceEntity instanceEntity, Map<String, String> properties,
                                        ViewConfig viewConfig, ClassLoader classLoader); Cluster getCluster(ViewInstanceDefinition viewInstance); @Subscribe @AllowConcurrentEvents void onAmbariEvent(ServiceInstalledEvent event); @Subscribe void onClusterConfigFinishedEvent(ClusterConfigFinishedEvent event); void readViewArchive(Path path); static final String API_PREFIX; static final String DEFAULT_AUTO_INSTANCE_URL; }### Answer:
@Test public void testAddInstanceDefinition() throws Exception { ViewRegistry registry = ViewRegistry.getInstance(); ViewEntity viewEntity = ViewEntityTest.getViewEntity(); InstanceConfig instanceConfig = InstanceConfigTest.getInstanceConfigs().get(0); ViewInstanceEntity viewInstanceEntity = new ViewInstanceEntity(viewEntity, instanceConfig); ResourceTypeEntity resourceTypeEntity = new ResourceTypeEntity(); resourceTypeEntity.setId(10); resourceTypeEntity.setName(viewEntity.getName()); viewEntity.setResourceType(resourceTypeEntity); ResourceEntity resourceEntity = new ResourceEntity(); resourceEntity.setId(20L); resourceEntity.setResourceType(resourceTypeEntity); viewInstanceEntity.setResource(resourceEntity); registry.addDefinition(viewEntity); registry.addInstanceDefinition(viewEntity, viewInstanceEntity); Collection<ViewInstanceEntity> viewInstanceDefinitions = registry.getInstanceDefinitions(viewEntity); Assert.assertEquals(1, viewInstanceDefinitions.size()); Assert.assertEquals(viewInstanceEntity, viewInstanceDefinitions.iterator().next()); }