@Test public void TestUnregisterAndRegisterWhenUpdating() throws Node2BeanException, RepositoryException, RegistrationException { // GIVEN String appName = "app1"; DefinitionProvider<AppDescriptor> appDescriptorProvider1 = createAppDescriptorProvider(appName, true); Set<DefinitionMetadata> registeredNames = appDescriptorRegistry.unregisterAndRegister( Arrays.<DefinitionMetadata>asList(), Arrays.asList(appDescriptorProvider1)); // Change content of AppDescriptor info DefinitionProvider<AppDescriptor> appDescriptorProvider2 = createAppDescriptorProvider(appName, false); eventHandler.clear(); // WHEN Set<DefinitionMetadata> registeredNames2 = appDescriptorRegistry.unregisterAndRegister( registeredNames, Arrays.asList(appDescriptorProvider2)); // THEN // appDescriptorProvider1 should be registered. assertNotNull(registeredNames2); assertEquals(1, registeredNames2.size()); assertEquals(appName, registeredNames2.iterator().next().getName()); assertEquals(1, eventHandler.events.size()); assertEquals(AppRegistryEventType.REREGISTERED, eventHandler.events.get(0).getEventType()); assertEquals( appDescriptorRegistry.getProvider(appName).getMetadata(), eventHandler.events.get(0).getAppDescriptorMetadata()); }
@Test public void testUnregisterAndRegisterWhenAdding() throws Node2BeanException, RepositoryException, RegistrationException { // GIVEN final String appName1 = "app1"; String appName2 = "app2"; DefinitionProvider<AppDescriptor> appDescriptorProvider1 = createAppDescriptorProvider(appName1, true); DefinitionProvider<AppDescriptor> appDescriptorProvider2 = createAppDescriptorProvider(appName2, true); // Add app1 Set<DefinitionMetadata> registeredMetadata = appDescriptorRegistry.unregisterAndRegister( Arrays.<DefinitionMetadata>asList(), Arrays.asList(appDescriptorProvider1)); assertEquals(1, registeredMetadata.size()); assertNotNull(appDescriptorRegistry.getProvider(appName1)); eventHandler.clear(); // WHEN Set<DefinitionMetadata> registeredNames2 = appDescriptorRegistry.unregisterAndRegister( registeredMetadata, Arrays.asList(appDescriptorProvider1, appDescriptorProvider2)); // THEN assertNotNull(registeredNames2); assertEquals(2, registeredNames2.size()); assertEquals(1, eventHandler.events.size()); assertContainsEvent(AppRegistryEventType.REGISTERED, appName2); }
@Test(expected = Registry.NoSuchDefinitionException.class) public void testGetAppDescriptorThrowsExceptionWhenAppNotFound() throws Node2BeanException, RepositoryException, RegistrationException { // GIVEN String addId = "app1"; DefinitionProvider<AppDescriptor> appDescriptorProvider1 = createAppDescriptorProvider(addId, true); appDescriptorRegistry.unregisterAndRegister( Arrays.<DefinitionMetadata>asList(), Arrays.asList(appDescriptorProvider1)); // WHEN appDescriptorRegistry.getProvider("xx"); }
@Test public void testGetAppDescriptor() throws Node2BeanException, RepositoryException, RegistrationException { // GIVEN String addId = "app1"; DefinitionProvider<AppDescriptor> appDescriptorProvider1 = createAppDescriptorProvider(addId, true); appDescriptorRegistry.unregisterAndRegister( Arrays.<DefinitionMetadata>asList(), Arrays.asList(appDescriptorProvider1)); // WHEN AppDescriptor appDescriptor = appDescriptorRegistry.getProvider(addId).get(); // THEN assertNotNull(appDescriptor); assertEquals(addId, appDescriptor.getName()); }