public override bool Execute(StorytellerInput input) { if (!Directory.Exists(input.FixturePath)) { Console.WriteLine("Creating directory " + input.FixturePath); Directory.CreateDirectory(input.FixturePath); } var running = RunningSystem.Create(input.System); using (running.System) { var fixtures = input.BuildFixturesWithOverrides(running.RecycledMessage); foreach (var fixture in fixtures) { var file = input.FixturePath.AppendPath(fixture.key + ".md"); try { FixtureWriter.Write(fixture, file); } catch (Exception e) { ConsoleWriter.Write(ConsoleColor.Red, $"Could not export fixture {fixture.key}"); ConsoleWriter.Write(ConsoleColor.Yellow, e.ToString()); } } } return(true); }
private void roundTrip <T>() where T : Fixture, new() { var fixture = new T(); var model = fixture.Compile(CellHandling.Basic()); var markdown1 = FixtureWriter.Write(model); Console.WriteLine("Fixture " + typeof(T).Name); Console.WriteLine("----------------------------------------------------------------"); Console.WriteLine(markdown1); Console.WriteLine("----------------------------------------------------------------"); Console.WriteLine(); Console.WriteLine(); var model2 = FixtureReader.ReadFrom(markdown1); var markdown2 = FixtureWriter.Write(model2); var grammars1 = model.grammars.Where(x => x.key != "TODO").OrderBy(x => x.key).Select(x => x.key); var grammars2 = model2.grammars.OrderBy(x => x.key).Select(x => x.key); grammars2.ShouldHaveTheSameElementsAs(grammars1.ToArray()); markdown2.ShouldBe(markdown1); }
public void ExportAllFixtures() { _watcher.Latch(() => { if (!Directory.Exists(_fixturePath)) { Directory.CreateDirectory(_fixturePath); } var fixtures = CombinedFixtures(); foreach (var fixture in fixtures) { var file = _fixturePath.AppendPath(fixture.key + ".md"); try { FixtureWriter.Write(fixture, file); } catch (Exception e) { ConsoleWriter.Write(ConsoleColor.Red, $"Could not export fixture {fixture.key}"); ConsoleWriter.Write(ConsoleColor.Yellow, e.ToString()); } } }); }
public string CreateFixture(string keyOrTitle) { var fixture = FixtureModel.BuildFromKeyOrTitle(keyOrTitle); var file = FileFor(fixture.key); if (File.Exists(file)) { ConsoleWriter.Write(ConsoleColor.White, $"Fixture file '{file}' already exists"); } else { _watcher.Latch(() => { FixtureWriter.Write(fixture, file); }); _overrides.Models[fixture.key] = fixture; sendUpdatesToClient(); ConsoleWriter.Write(ConsoleColor.Green, $"Successfully created a new Fixture {fixture.key}: {fixture.title}"); } return(file); }
public override bool Execute(DumpFixturesInput input) { if (!Directory.Exists(input.FixturePath)) { Console.WriteLine("Creating directory " + input.FixturePath); Directory.CreateDirectory(input.FixturePath); } using (var controller = input.BuildEngine()) { var combined = BuildCombinedFixtureLibrary(input, controller); foreach (var fixture in combined.Models) { var file = input.FixturePath.AppendPath(fixture.key + ".md"); try { FixtureWriter.Write(fixture, file); } catch (Exception e) { ConsoleWriter.Write(ConsoleColor.Red, $"Could not export fixture {fixture.key}"); ConsoleWriter.Write(ConsoleColor.Yellow, e.ToString()); } } } return(true); }
public void Export(string key) { var file = FileFor(key); var fixture = CombinedFixtures().FirstOrDefault(x => x.key == key) ?? new FixtureModel(key); try { _watcher.Latch(() => FixtureWriter.Write(fixture, file)); } catch (Exception e) { ConsoleWriter.Write(ConsoleColor.Red, "Failed to write file " + file); ConsoleWriter.Write(ConsoleColor.Yellow, e.ToString()); } }
public void does_not_overwrite_an_existing_fixture() { var file = theFixtureDirectory.AppendPath("One.md"); var original = new FixtureModel("One") { title = "a fancier title" }; FixtureWriter.Write(original, file); theController.CreateFixture("One"); FixtureReader.ReadFromFile(file) .title.ShouldBe(original.title); theClient.ReceivedCalls().Any().ShouldBeFalse(); }
protected override void WriteBody(XmlWriter writer) { // Module data writer.WriteStartElement("ModuleData"); writer.WriteRaw(ModuleDataSet.Serialize()); writer.WriteEndElement(); // ModuleData // Fixtures FixtureWriter fixtureWriter = new FixtureWriter(); writer.WriteStartElement("Fixtures"); foreach (Fixture fixture in Fixtures) { fixtureWriter.Fixture = fixture; fixtureWriter.Write(writer); } writer.WriteEndElement(); // Fixtures }