/// <summary> /// Upon loading the file through the <see cref="ConfigurationsReader"/> class the program will start /// iterating through every sequence of moves and calling the <see cref="ExecuteGame"/> class which will output /// the result to console. /// </summary> /// <param name="file">As per requirement args is expecting a path to a file</param> public static void Game(string file) { var gameConfiguration = new ConfigurationsReader(file); var turtleGame = new ExecuteGame(gameConfiguration.Games); turtleGame.ExecuteGames(gameConfiguration.Board, gameConfiguration.Turtle, gameConfiguration.Games); }
public void OldConfigXml() { string json = Resources.old_config1; ConfigurationsReader reader = this.resolver.Create <ConfigurationsReader>(); Assert.ThrowsException <InvalidConfigurationException>(() => reader.Parse(json)); }
public void EmptyGenerate() { ConfigurationsReader reader = this.resolver.Create <ConfigurationsReader>(); List <ConfigurationSet> configurations = reader.Parse(Resources.empty_generate); Assert.AreEqual(1, configurations.Count, "Unexpected number of configurations"); Assert.AreEqual(0, configurations[0].Readers.Count, "Unexpected number of readers"); Assert.AreEqual(0, configurations[0].Writers.Count, "Unexpected number of writers"); }
public void OneGenerateInArrayArray() { ConfigurationsReader reader = this.resolver.Create <ConfigurationsReader>(); List <ConfigurationSet> configurations = reader.Parse(Resources.one_generate_in_array_array); Assert.AreEqual(1, configurations.Count, "Unexpected number of configurations"); Assert.AreEqual(0, configurations[0].Readers.Count, "Unexpected number of readers"); Assert.AreEqual(1, configurations[0].Writers.Count, "Unexpected number of writers"); Assert.AreEqual("Test1", configurations[0].Writers[0].CastTo <Write1Configuration>().Property1); }
public void TwoReadsOneGenerate() { ConfigurationsReader reader = this.resolver.Create <ConfigurationsReader>(); List <ConfigurationSet> configurations = reader.Parse(Resources.two_reads_one_generate); Assert.AreEqual(1, configurations.Count, "Unexpected number of configurations"); Assert.AreEqual(2, configurations[0].Readers.Count, "Unexpected number of readers"); Assert.AreEqual(1, configurations[0].Writers.Count, "Unexpected number of writers"); Assert.AreEqual("Test1", configurations[0].Readers[0].CastTo <Read1Configuration>().Property1); Assert.AreEqual("Test2", configurations[0].Readers[1].CastTo <Read2Configuration>().Property2); Assert.AreEqual("Test3", configurations[0].Writers[0].CastTo <Write1Configuration>().Property1); }
public void Initialize() { this.resolver = new DependencyResolver(); this.resolver.Bind <ITypeMapping>().To <TypeMapping>(); this.resolver.Bind <IConfigurationReaderVersion>().To <ConfigurationReaderVersion2>(); this.resolver.Bind <ReaderConfigurationMapping>().ToSingleton(); this.resolver.Get <ReaderConfigurationMapping>(); this.resolver.Bind <WriterConfigurationMapping>().ToSingleton(); this.resolver.Get <WriterConfigurationMapping>(); this.resolver.Create <CoreModule>().Initialize(); this.resolver.Create <CsharpModule>().Initialize(); this.resolver.Create <JsonModule>().Initialize(); this.reader = this.resolver.Create <ConfigurationsReader>(); }
public void Initialize() { this.resolver = new DependencyResolver(); this.resolver.Bind <ITypeMapping>().ToSingleton <TypeMapping>(); this.resolver.Bind <IConfigurationReaderVersion>().To <ConfigurationReaderVersion2>(); this.resolver.Bind <ReaderConfigurationMapping>().ToSingleton(); this.resolver.Bind <WriterConfigurationMapping>().ToSingleton(); this.resolver.Create <CoreModule>().Initialize(); this.resolver.Create <CsharpModule>().Initialize(); this.resolver.Create <TsqlModule>().Initialize(); this.reader = this.resolver.Create <ConfigurationsReader>(); this.runner = this.resolver.Create <ConfigurationRunner>(); this.output = this.resolver.Create <MemoryOutput>(); }
public void TestTurtleCannotMoveOutOfBoard() { var settings = new string[6]; settings[0] = "5 4"; settings[1] = "1,1 1,3 3,3"; settings[2] = "4 2"; settings[3] = "0 1 N"; settings[4] = "M M M M M"; var testProgram = new ConfigurationsReader(settings); IEnumerable <Moves> moves = testProgram.Games. ElementAt(0).Split(' ').Select(s => Enum.Parse(typeof(Moves), s)).Cast <Moves>().ToList(); Assert.Throws <Exception>(() => ExecuteGame.Execute(testProgram.Board, testProgram.Turtle, moves)); }
public void TestStillInDangerRun() { var settings = new string[6]; settings[0] = "5 4"; settings[1] = "1,1 1,3 3,3"; settings[2] = "4 2"; settings[3] = "0 1 N"; settings[4] = "M R M M M"; var testProgram = new ConfigurationsReader(settings); IEnumerable <Moves> moves = testProgram.Games. ElementAt(0).Split(' ').Select(s => Enum.Parse(typeof(Moves), s)).Cast <Moves>().ToList(); Assert.AreEqual("Still in danger!", ExecuteGame.Execute(testProgram.Board, testProgram.Turtle, moves)); }
public void TestMine() { var settings = new string[6]; settings[0] = "5 4"; settings[1] = "1,1 1,3 3,3"; settings[2] = "4 2"; settings[3] = "0 1 N"; settings[4] = "R M L M M"; settings[5] = "R M M M"; var configurationsReader = new ConfigurationsReader(settings); var coordinates = new Coordinates { CoordinateX = 1, CoordinateY = 1 }; Assert.AreEqual(true, configurationsReader.Board.IsMine(coordinates)); }
private List <ConfigurationSet> Deserialize(string configuration) { ConfigurationsReader configurationsReader = this.resolver.Create <ConfigurationsReader>(); return(configurationsReader.Parse(configuration)); }
public void EmptyConfiguration() { ConfigurationsReader reader = this.resolver.Create <ConfigurationsReader>(); Assert.ThrowsException <InvalidConfigurationException>(() => reader.Parse(Resources.empty_configuration)); }