public TArranged visitBeforeAll <TArranged>(BeforeAllElement <TArranged> element, TestPosition position) { CheckNotAlreadyPastDiscovery(element); TArranged result = default(TArranged); if (position.IsOnPathTo(_targetPosition)) { _executingPastDiscovery = element; try { try { result = element.Action(); } catch (Exception e) { ReportError(position, e); } _setupResultAccumulator.AddSetupResult(position, result); } finally { _executingPastDiscovery = null; } } return(result); }
private void CheckNotAlreadyPastDiscovery(SpecificationElement origin) { if (_executingPastDiscovery != null) { throw new Exception("Attempted to call " + origin + " within " + _executingPastDiscovery + "."); } }
public virtual void visitAfterEach(SpecificationElement element, Action action, TestPosition position) { _runContext.AddTeardownAction(delegate() { _runContext.whileInState(new CleanupState(_runContext, element), action); }); }
public GlobalSetupVisitor(LolMutex runningLock) { _runningLock = runningLock; _executingPastDiscovery = null; _executingCleanup = null; _errorAccumulator = new ErrorAccumulator(); _setupResultAccumulator = new GlobalSetupResultAccumulator(); _traceTracker = new TraceTracker(); }
public void SetsCorrectIdForSpecification() { var context = Substitute.For <IContextElement>(); context.TypeName.Returns("Namespace.ContextType"); var specification = new SpecificationElement(context, "should_be"); Assert.That(specification.Id, Is.EqualTo("Namespace.ContextType.should_be")); }
protected T RunSpecificationElement <T>(SpecificationElement specificationElement) { T result = default(T); var position = CurrentPosition; var nextPosition = CurrentPosition.GetNextSiblingPosition(); CurrentPosition = CurrentPosition.GetFirstChildPosition(); result = (T)specificationElement.Run(Visitor, position); CurrentPosition = nextPosition; return(result); }
public void visitAfterAll(AfterAllElement element, TestPosition position) { CheckNotAlreadyPastDiscovery(element); if (position.IsOnPathTo(_targetPosition)) { _setupResultAccumulator.AddCleanupAction(position, delegate { _executingCleanup = element; element.Action(); _executingCleanup = null; }); } }
public void SetsCorrectIdForBehaviorSpecification() { var context = Substitute.For <IContextElement>(); context.TypeName.Returns("Namespace.ContextType"); var behavior = Substitute.For <IBehaviorElement>(); behavior.FieldName.Returns("behaves_like"); var specification = new SpecificationElement(context, "should_be", null, behavior); Assert.That(specification.Id, Is.EqualTo("Namespace.ContextType.behaves_like.should_be")); }
public async Task AddsSingleContext() { var context = new ContextElement("Namespace.ContextType", "subject", null); var specification1 = new SpecificationElement(context, "should_be"); var specification2 = new SpecificationElement(context, "should_not_be"); var sink = new MspecDiscoverySink(CancellationToken.None); sink.OnSpecification(specification1); sink.OnSpecification(specification2); sink.OnDiscoveryCompleted(); var results = await sink.Elements; Assert.That(results.Length, Is.EqualTo(3)); CollectionAssert.Contains(results, context); CollectionAssert.Contains(results, specification1); CollectionAssert.Contains(results, specification2); }
public void visitAfterEach(SpecificationElement element, Action action, TestPosition position) { _runContext.State.visitAfterEach(element, action, position); }
public override void visitAfterEach(SpecificationElement element, Action action, TestPosition position) { throw DontException(element); }
public ArrangeState(NJasmineTestRunContext runContext, SpecificationElement specElement) : base(runContext) { SpecElement = specElement; }
public void visitAfterEach(SpecificationElement element, Action action, TestPosition position) { CheckNotAlreadyPastDiscovery(element); }
public InvalidOperationException DontException(SpecificationElement innerSpecElement) { return(new InvalidOperationException("Called " + innerSpecElement + "() within " + SpecElement + "().")); }
public void visitAfterEach(SpecificationElement element, Action action, TestPosition position) { }
public ActState(NJasmineTestRunContext runContext, SpecificationElement specElement) : base(runContext, specElement) { }
protected void RunSpecificationElement(SpecificationElement specElement) { RunSpecificationElement <object>(specElement); }