@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)); }
@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 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)); }
assertThat(e.getCause(),instanceOf(WriteSessionException.class)); assertThat(e.getCause().getMessage(),equalTo("FAILURE")); assertThat(provider.pendingMemberNames(),not((contains(memberName)))); try { resourceHandler.get(memberSnapshot);