@Test(expected=NullPointerException.class) public void testCreate$null() throws Exception { NameProvider.create(null); }
@Test public void testCreate$nonNull() throws Exception { Name<String> owner = name("test"); NameProvider sut = NameProvider.create(owner); assertThat(sut,notNullValue()); assertThat(sut.owner(),equalTo(owner)); assertThat(sut.pendingMemberNames(),hasSize(0)); assertThat(sut.pendingResourceNames(),hasSize(0)); }
@Test public void testAttachmentNameLifecycle$unknownAttachment() { Name<String> owner = name("test"); NameProvider sut = NameProvider.create(owner); assertThat(sut.pendingAttachmentNames("attachment"),hasSize(0)); try { sut.nextAttachmentName("attachment"); fail("Should not provide attachment names if not available"); } catch (ApplicationRuntimeException e) { assertThat(e.getMessage(),equalTo("No more attachment <<attachment>> names available for resource 'test'")); } }
@SuppressWarnings("unchecked") @Test public void testMemberNameLifecycle() { Name<String> owner = name("test"); NameProvider sut = NameProvider.create(owner); sut.addMemberName(name("m1")); sut.addMemberName(name("m2")); assertThat(sut.pendingMemberNames(),contains(name("m1"),name("m2"))); assertThat(sut.nextMemberName(),equalTo(name("m1"))); assertThat(sut.pendingMemberNames(),contains(name("m2"))); assertThat(sut.nextMemberName(),equalTo(name("m2"))); assertThat(sut.pendingMemberNames(),hasSize(0)); try { sut.nextMemberName(); fail("Should not provide member names if not available"); } catch (ApplicationRuntimeException e) { assertThat(e.getMessage(),equalTo("No more member names available for resource 'test'")); } }
@SuppressWarnings("unchecked") @Test public void testAttachmentNameLifecycle() { Name<String> owner = name("test"); NameProvider sut = NameProvider.create(owner); sut.addAttachmentName("attachment",name("m1")); sut.addAttachmentName("attachment",name("m2")); assertThat(sut.pendingAttachmentNames("attachment"),contains(name("m1"),name("m2"))); assertThat(sut.nextAttachmentName("attachment"),equalTo(name("m1"))); assertThat(sut.pendingAttachmentNames("attachment"),contains(name("m2"))); assertThat(sut.nextAttachmentName("attachment"),equalTo(name("m2"))); assertThat(sut.pendingAttachmentNames("attachment"),hasSize(0)); try { sut.nextAttachmentName("attachment"); fail("Should not provide attachment names if not available"); } catch (ApplicationRuntimeException e) { assertThat(e.getMessage(),equalTo("No more attachment <<attachment>> names available for resource 'test'")); } }
@SuppressWarnings("unchecked") @Test public void testResourceNameLifecycle() { Name<String> owner = name("test"); NameProvider sut = NameProvider.create(owner); sut.addResourceName(name("m1")); sut.addResourceName(name("m2")); assertThat(sut.pendingResourceNames(),contains(name("m1"),name("m2"))); assertThat(sut.nextResourceName(),equalTo(name("m1"))); assertThat(sut.pendingResourceNames(),contains(name("m2"))); assertThat(sut.nextResourceName(),equalTo(name("m2"))); assertThat(sut.pendingResourceNames(),hasSize(0)); try { sut.nextResourceName(); fail("Should not provide resource names if not available"); } catch (ApplicationRuntimeException e) { assertThat(e.getMessage(),equalTo("No more resource names available for resource 'test'")); } }
@SuppressWarnings("unchecked") @Test public void testCreate$happyPath() throws Exception { BookContainerHandler containerHandler = new BookContainerHandler(); BookHandler resourceHandler=new BookHandler(); final Name<String> containerName = name("container"); final NameProvider provider = NameProvider.create(containerName); final Name<String> memberName = name("resource"); provider.addMemberName(memberName); containerHandler.addNameProvider(provider.owner(),provider); containerHandler.setBookHandler(resourceHandler); final DataSet data = DataSets.createDataSet(memberName); new Expectations() {{ snapshot.name();result=containerName; memberSnapshot.name();result=memberName; }}; containerHandler.create(snapshot, data, session); assertThat(provider.pendingMemberNames(),not((contains(memberName)))); assertThat(resourceHandler.get(memberSnapshot),sameInstance(data)); }
BookHandler resourceHandler=new BookHandler(); final Name<String> containerName = name("container"); final NameProvider provider = NameProvider.create(containerName); final Name<String> memberName = name("resource"); provider.addMemberName(memberName);
NameProvider nameProvider = NameProvider.create(resourceName); final Name<String> id = NamingScheme.getDefault().name("book1"); nameProvider.addMemberName(id);