@Test public void adapterExposesResourceIdentifier(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), new FailingHandler(),session); assertThat(adapter.resourceId(),equalTo(ResourceId.createId(resourceName(), templateId()))); }
@Override public boolean removeAttachment(AttachmentSnapshot attachment) { throw fail(); }
@Override public AttachmentSnapshot attachmentById(String attachmentId) { throw fail(); }
@Override public Name<?> name() { throw fail(); }
@Override public <T extends ResourceSnapshot> T createAttachedResource(Class<? extends T> snapshotClass, String attachmentId, Name<?> name, Class<? extends ResourceHandler> handlerClass) { throw fail(); }
@Override public Set<? extends AttachmentSnapshot> attachments() { throw fail(); }
@Override public AttachmentSnapshot attachmentByResource(ResourceSnapshot resource) { throw fail(); }
@Override public ResourceSnapshot parent() { throw fail(); }
@Test public void creationOnResourceSnapshotFails(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), new FailingHandler(),session); try { adapter.create(null); fail("Should fail if an exception is thrown on create"); } catch(UnsupportedFeatureException e) { verifyExpectedFeatureException(e, ContainerHandler.class, FailingHandler.class, session); } }
@Test public void createdAdapterFailsOnInternalDeleteFailure(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), new FailingHandler(),session); try { adapter.delete(); fail("Should fail if an exception is thrown on delete"); } catch(FeatureException e) { verifyExpectedFeatureFailure(e, Deletable.class, session); } }
@Test public void createdAdapterFailsOnUpdateIfHandlerIsNotModifiable(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), simpleHandler(),session); try { adapter.update(null); fail("Should fail if an exception is thrown on update"); } catch(FeatureException e) { verifyExpectedFeatureException(e, Modifiable.class, SimpleHandler.class, session); } }
@Test public void createdAdapterFailsOnQueryIfHandlerIsNotQueryable(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), simpleHandler(),session); try { adapter.query(null); fail("Should fail if an exception is thrown on query"); } catch(FeatureException e) { verifyExpectedFeatureException(e, Queryable.class, SimpleHandler.class, session); } }
@Test public void createdAdapterFailsOnDeleteIfHandlerIsNotDeletable(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), simpleHandler(),session); try { adapter.delete(); fail("Should fail if an exception is thrown on delete"); } catch(FeatureException e) { verifyExpectedFeatureException(e, Deletable.class, SimpleHandler.class, session); } }
@Test public void createdAdapterFailsOnInternalUpdateFailure(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), new FailingHandler(),session); try { adapter.update(null); fail("Should fail if an exception is thrown on update"); } catch(FeatureException e) { verifyExpectedFeatureFailure(e, Modifiable.class, session); } }
@Test public void createdAdapterFailsOnInternalQueryFailure(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), new FailingHandler(),session); try { adapter.query(null); fail("Should fail if an exception is thrown on query"); } catch(FeatureException e) { verifyExpectedFeatureFailure(e, Queryable.class, session); } }
@SuppressWarnings("unchecked") @Override public Class<? extends ContainerHandler> handlerClass() { return (Class<? extends ContainerHandler>)super.handlerClass(); }
@Override public boolean isRoot() { throw fail(); }
@Test public void createdAdapterFailsOnInternalGetFailure(final @Mocked Resource resource, final @Mocked WriteSessionService service, final @Mocked WriteSessionConfiguration configuration, final @Mocked WriteSession session) throws Exception { Adapter adapter=prepareAdapter(resource, service,configuration, new MockResourceSnapshot(), new FailingHandler(),session); try { adapter.get(); fail("Should fail if an exception is thrown on get"); } catch(FeatureException e) { verifyExpectedFeatureFailure(e, ResourceHandler.class, session); } }