private DynamicResourceUpdater createSut(DynamicResourceHandler handler) { DataSet dataSet = DataSets.createDataSet(RID); dataSet.individual(ManagedIndividualId.createId(RID, DynamicResourceHandler.ID), ManagedIndividual.class); handler.add(RID,dataSet); return new DynamicResourceUpdater(handler, RID); } }
/** * Update the resource representation adding a temporal timestamp of when * the resource was last updated. */ @Override public void run() { ApplicationContext ctx = ApplicationContext.getInstance(); Date date = new Date(); LOGGER.debug("Starting update process on {}...",date); try(WriteSession session = ctx.createSession()) { ResourceSnapshot snapshot = session.find(ResourceSnapshot.class,this.name,DynamicResourceHandler.class); DataSet dataSet = this.handler.get(snapshot); Individual<?,?> individual = dataSet. individualOfId( ManagedIndividualId. createId(this.name, DynamicResourceHandler.ID)); individual. addValue( REFRESHED_ON, Literals.of(date).dateTime()); this.handler.update(this.name, dataSet); session.modify(snapshot); session.saveChanges(); } catch (Exception e) { LOGGER.error("Could not update resource",e); } finally { LOGGER.debug("Finalized update process"); } }
@Test public void testRun$failure$runtimeException(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = runtimeFailureSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,false); }
RelativeContainerHandler relativesHandler=new RelativeContainerHandler(); QueryableResourceHandler queryableHandler=new QueryableResourceHandler(); this.dynamicResourceHandler = new DynamicResourceHandler(); BadDataResourceHandler badDataHandler=new BadDataResourceHandler(); relativesHandler.add(this.relativeContainerResourceName, getInitialData(RelativeContainerHandler.ID,RELATIVE_CONTAINER_NAME)); queryableHandler.add(this.queryableResourceName, getInitialData(QueryableResourceHandler.ID,QUERYABLE_RESOURCE_NAME)); this.dynamicResourceHandler.add(this.dynamicResourceName, getInitialData(DynamicResourceHandler.ID,DYNAMIC_RESOURCE_NAME)); badDataHandler.add(this.badDataResourceName, badDataHandler.getRepresentation());
private void verifyResult(final ResourceSnapshot snapshot, DynamicResourceHandler handler, boolean b) throws UnknownResourceException { DataSet dataSet = handler.get(snapshot); Individual<?, ?> resource=dataSet.individualOfId(ManagedIndividualId.createId(RID, DynamicResourceHandler.ID)); assertThat(resource.hasProperty(DynamicResourceUpdater.REFRESHED_ON),equalTo(b)); }
@Test public void testRun$failure$writeSessionException(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceResolver sut = writeSessionFailureSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,true,true, "OK"); }
private void verifyResult(final ResourceSnapshot snapshot, DynamicResourceHandler handler, boolean resolveToUri, boolean resolveRoundtrip, String roundtrip) throws UnknownResourceException { DataSet dataSet = handler.get(snapshot); Individual<?, ?> resource=dataSet.individualOfId(ManagedIndividualId.createId(RID, DynamicResourceHandler.ID)); assertThat("Could "+(resolveToUri?"not":"")+" resolve uri",resource.hasProperty(DynamicResourceResolver.SNAPSHOT_ENDPOINT),equalTo(resolveToUri)); if(resolveToUri) { assertThat("Invalid uri resolution",resource.property(DynamicResourceResolver.SNAPSHOT_ENDPOINT).hasLiteralValue(Literals.newLiteral(ENDPOINT)),equalTo(resolveRoundtrip)); } assertThat("Could "+(resolveRoundtrip?"not":"")+" resolve roundtrip",resource.hasProperty(DynamicResourceResolver.SNAPSHOT_RESOLUTION),equalTo(resolveRoundtrip)); if(resolveRoundtrip) { assertThat("Invalid roundtrip resolution",resource.property(DynamicResourceResolver.SNAPSHOT_RESOLUTION).hasLiteralValue(Literals.of(roundtrip)),equalTo(resolveRoundtrip)); } }
@Test public void testRun$failure$writeSessionTerminationFailure(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = writeSessionTerminationSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,true); }
application.shutdown(); DataSet dataSet = application.dynamicResourceHandler().get(snapshot); LOGGER.info("Updated resource:\n{}",dataSet);
private DynamicResourceResolver createSut(DynamicResourceHandler handler) { DataSet dataSet = DataSets.createDataSet(RID); dataSet.individual(ManagedIndividualId.createId(RID, DynamicResourceHandler.ID), ManagedIndividual.class); handler.add(RID,dataSet); return new DynamicResourceResolver(handler, RID); } }
@Test public void testRun$failure$nullWriteSession(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceResolver sut = nullWriteSessionSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,false,false,null); }
@Test public void testRun(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = workingSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,true); }
@Test public void testRun$failure$nullWriteSession(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = nullWriteSessionSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,false); }
@Test public void testRun$failure$writeSessionException(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = writeSessionFailureSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,true); }
@Test public void testRun$failure$writeSessionAndTerminationFailure(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = writeSessionFailureWithTerminationFailureSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,true); }
@Test public void testRun$failure$runtimeException(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceResolver sut = runtimeFailureSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,false,false,null); }
@Test public void testRun$failure$writeSessionCreationException(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceUpdater sut = writeSessionCreationFailureSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,false); }
@Test public void testRun(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceResolver sut = workingSut(handler,session,snapshot); sut.run(); verifyResult(snapshot,handler,true,true, "OK"); }
@Test public void testRun$roundtripFailure$noSnapshotFound(@Mocked final WriteSession session, @Mocked final ResourceSnapshot snapshot) throws Exception { DynamicResourceHandler handler = new DynamicResourceHandler(); DynamicResourceResolver sut = roundtripFailureSut(handler,session,snapshot,null); sut.run(); verifyResult(snapshot,handler,true,true,"KO"); }