@@ -0,0 +1,1706 @@
+package arez.integration.observe;%0A%0Aimport arez.Arez;%0Aimport arez.ArezContext;%0Aimport arez.annotations.ArezComponent;%0Aimport arez.annotations.Executor;%0Aimport arez.annotations.Observable;%0Aimport arez.annotations.Observe;%0Aimport arez.annotations.OnDepsChanged;%0Aimport arez.integration.AbstractArezIntegrationTest;%0Aimport arez.integration.util.TestSpyEventHandler;%0Aimport arez.spy.ActionCompletedEvent;%0Aimport arez.spy.ActionStartedEvent;%0Aimport arez.spy.TransactionCompletedEvent;%0Aimport arez.spy.TransactionStartedEvent;%0Aimport org.testng.annotations.Test;%0Aimport static org.testng.Assert.*;%0A%0Apublic class TrackNoReportResultTest%0A  extends AbstractArezIntegrationTest%0A%7B%0A  @ArezComponent%0A  public static abstract class Model%0A  %7B%0A    @Observe( executor = Executor.APPLICATION, reportResult = false )%0A    public int render()%0A    %7B%0A      getTime();%0A      return 23;%0A    %7D%0A%0A    @OnDepsChanged%0A    final void onRenderDepsChanged()%0A    %7B%0A    %7D%0A%0A    @Observable%0A    abstract long getTime();%0A%0A    abstract void setTime( long value );%0A  %7D%0A%0A  @Test%0A  public void scenario()%0A  %7B%0A    final ArezContext context = Arez.context();%0A%0A    final Model component = new TrackNoReportResultTest_Arez_Model();%0A%0A    final TestSpyEventHandler recorder = new TestSpyEventHandler();%0A    context.getSpy().addSpyEventHandler( recorder );%0A%0A    final int result = component.render();%0A    assertEquals( result, 23 );%0A%0A    recorder.assertEventCount( 4 );%0A    recorder.assertNextEvent( ActionStartedEvent.class );%0A    recorder.assertNextEvent( TransactionStartedEvent.class );%0A    recorder.assertNextEvent( TransactionCompletedEvent.class );%0A    recorder.assertNextEvent( ActionCompletedEvent.class, a -%3E assertNull( a.getResult() ) );%0A  %7D%0A%7D%0A

Add basic integration test