@Test public void testCreate$happyPath() throws Exception { PersonContainerHandler containerHandler = new PersonContainerHandler(); Deencapsulation.setField(containerHandler,"id",new AtomicInteger()); PersonHandler resourceHandler=new PersonHandler(); final Name<String> containerName = name("container"); containerHandler.setHandler(resourceHandler); final DataSet data = empty(containerName); final Name<Integer> memberName = NamingScheme.getDefault().name(1); new Expectations() {{ memberSnapshot.name();result=memberName; }}; containerHandler.create(snapshot, data, session); assertThat(resourceHandler.get(memberSnapshot),sameInstance(data)); }
LOGGER.info("Configuring application: {}, {}",environment,bootstrap); PersonHandler resourceHandler = new PersonHandler(); PersonContainerHandler containerHandler=new PersonContainerHandler(); RelativeContainerHandler relativesHandler=new RelativeContainerHandler(); QueryableResourceHandler queryableHandler=new QueryableResourceHandler(); BadDataResourceHandler badDataHandler=new BadDataResourceHandler(); containerHandler.setHandler(resourceHandler); relativesHandler.setHandler(resourceHandler); containerHandler.add(this.personContainerName, getInitialData(PersonContainerHandler.ID,PERSON_CONTAINER_NAME)); relativesHandler.add(this.relativeContainerResourceName, getInitialData(RelativeContainerHandler.ID,RELATIVE_CONTAINER_NAME)); queryableHandler.add(this.queryableResourceName, getInitialData(QueryableResourceHandler.ID,QUERYABLE_RESOURCE_NAME));
@Test public void testCreate$exceptionPath() throws Exception { PersonContainerHandler containerHandler = new PersonContainerHandler(); Deencapsulation.setField(containerHandler,"id",new AtomicInteger()); PersonHandler resourceHandler=new PersonHandler(); final Name<String> containerName = name("container"); containerHandler.setHandler(resourceHandler); final DataSet data = empty(containerName); final Name<Integer> memberName = NamingScheme.getDefault().name(1); new Expectations() {{ memberSnapshot.name();result=memberName; session.saveChanges();result=new WriteSessionException("FAILURE"); }}; try { containerHandler.create(snapshot, data, session); fail("Should not create if the session fails"); } catch (ApplicationRuntimeException e) { assertThat(e.getCause(),instanceOf(WriteSessionException.class)); assertThat(e.getCause().getMessage(),equalTo("FAILURE")); try { resourceHandler.get(memberSnapshot); fail("Resource should not be available in the resource handler"); } catch (UnknownResourceException e1) { } } }