public void CanStartAndEndSpecification() { var sink = Substitute.For <IExecutionListener>(); var elements = new ISpecificationElement[] { ElementFixtures.Specification1, ElementFixtures.Behavior1Specification1, ElementFixtures.Behavior1Specification2 }; var cache = new ElementCache(elements); var tracker = new RunTracker(elements); var listener = new ExecutionAdapterRunListener(sink, cache, tracker); var context = new TestContextInfo(ElementFixtures.Context.TypeName, string.Empty); var specification = new TestSpecificationInfo(ElementFixtures.Context.TypeName, ElementFixtures.Specification1.FieldName, string.Empty); listener.OnContextStart(context); listener.OnSpecificationStart(specification); listener.OnSpecificationEnd(specification, new TestRunResult(TestStatus.Passing)); listener.OnContextEnd(context); sink.Received().OnContextStart(ElementFixtures.Context); sink.Received().OnSpecificationStart(ElementFixtures.Specification1); sink.Received().OnSpecificationEnd(ElementFixtures.Specification1, Arg.Any <string>(), Arg.Any <TestRunResult>()); sink.Received().OnContextEnd(ElementFixtures.Context, Arg.Any <string>()); }
public void CanNotifyRun() { var sink = Substitute.For <IExecutionListener>(); var cache = new ElementCache(Array.Empty <ISpecificationElement>()); var tracker = new RunTracker(Array.Empty <ISpecificationElement>()); var listener = new ExecutionAdapterRunListener(sink, cache, tracker); listener.OnRunStart(); listener.OnRunEnd(); sink.Received().OnRunStart(); sink.Received().OnRunEnd(); }
public void CanNotifyAssembly() { const string path = "path/to/assembly.dll"; var sink = Substitute.For <IExecutionListener>(); var cache = new ElementCache(Array.Empty <ISpecificationElement>()); var tracker = new RunTracker(Array.Empty <ISpecificationElement>()); var listener = new ExecutionAdapterRunListener(sink, cache, tracker); var assembly = new TestAssemblyInfo(path); listener.OnAssemblyStart(assembly); listener.OnAssemblyEnd(assembly); sink.Received().OnAssemblyStart(path); sink.Received().OnAssemblyEnd(path); }