public async Task WriteAsync(ExpectExceptionScenario scenario) { if (scenario == null) { throw new ArgumentNullException(nameof(scenario)); } await Writer.WriteLineAsync("Given"); await Writer.WriteLineAsync(""); foreach (var given in scenario.Givens) { await Writer.WriteLineAsync(string.Format("\t[{0}] {1}", given.Stream, Translator.Translate(given.Event))); } await Writer.WriteLineAsync("When"); await Writer.WriteLineAsync(""); await Writer.WriteLineAsync(string.Format("\t{0}", Translator.Translate(scenario.When.Body))); // foreach (var header in scenario.When.Head) // { // await Writer.WriteLineAsync(string.Format("\t{0}", Translator.Translate(header))); // } await Writer.WriteLineAsync("Throws"); await Writer.WriteLineAsync(""); await Writer.WriteLineAsync(string.Format("\t{0}", Translator.Translate(scenario.Throws))); }
public async Task <object> RunAsync(ExpectExceptionScenario scenario, CancellationToken ct = default) { var checkpoint = await WriteGivens(scenario.Givens); var exception = await Catch.Exception(() => _resolver(scenario.When)(scenario.When, ct)); if (exception == null) { var recordedEvents = await ReadThens(checkpoint); if (recordedEvents.Length != 0) { return(scenario.ButRecordedEvents(recordedEvents)); } return(scenario.ButThrewNoException()); } var config = new ComparisonConfig { MaxDifferences = int.MaxValue, MaxStructDepth = 5, MembersToIgnore = { "StackTrace", "Source", "TargetSite" }, IgnoreObjectTypes = true, CustomComparers = new List <BaseTypeComparer> { new ValidationFailureComparer(RootComparerFactory.GetRootComparer()), //new PointMComparer(RootComparerFactory.GetRootComparer()) } }; var comparer = new CompareLogic(config); var result = comparer.Compare(scenario.Throws, exception); if (result.AreEqual) { return(scenario.Pass()); } return(scenario.ButThrewException(exception)); }
public ScenarioExpectedExceptionButRecordedEvents(ExpectExceptionScenario scenario, RecordedEvent[] actual) { Scenario = scenario ?? throw new ArgumentNullException(nameof(scenario)); Actual = actual ?? throw new ArgumentNullException(nameof(actual)); }
public ScenarioExpectedExceptionButThrewOtherException(ExpectExceptionScenario scenario, Exception actual) { Scenario = scenario ?? throw new ArgumentNullException(nameof(scenario)); Actual = actual ?? throw new ArgumentNullException(nameof(actual)); }
public ExpectExceptionScenarioPassed(ExpectExceptionScenario scenario) { Scenario = scenario ?? throw new ArgumentNullException(nameof(scenario)); }
public ScenarioExpectedExceptionButThrewNoException(ExpectExceptionScenario scenario) { Scenario = scenario ?? throw new ArgumentNullException(nameof(scenario)); }