Exemplo n.º 1
0
        public void Test_RobotPositionService_GetFinalPostion()
        {
            IDataService          dataService       = new DataService();
            IRobotPositionService service           = new RobotPositionService(dataService);
            IPositionStarting     positionStarting1 = new PositionStarting
            {
                StartingXPosition = 1,
                StartingYPosition = 1,
                Orientation       = 'E',
                Instructions      = "RFRFRFRF"
            };
            IPositionFinal positionFinal1 = service.GetFinalPostion(1, positionStarting1);

            Assert.AreEqual(1, positionFinal1.FinalXPosition);
            Assert.AreEqual(1, positionFinal1.FinalYPosition);
            Assert.AreEqual('E', positionFinal1.FinalOrientation);
            Assert.AreEqual(false, positionFinal1.Lost);

            IPositionStarting positionStarting2 = new PositionStarting
            {
                StartingXPosition = 3,
                StartingYPosition = 2,
                Orientation       = 'N',
                Instructions      = "FRRFLLFFRRFLL"
            };
            IPositionFinal positionFinal2 = service.GetFinalPostion(1, positionStarting2);

            Assert.AreEqual(3, positionFinal2.FinalXPosition);
            Assert.AreEqual(3, positionFinal2.FinalYPosition);
            Assert.AreEqual('N', positionFinal2.FinalOrientation);
            Assert.AreEqual(true, positionFinal2.Lost);

            IPositionStarting positionStarting3 = new PositionStarting
            {
                StartingXPosition = 0,
                StartingYPosition = 3,
                Orientation       = 'W',
                Instructions      = "LLFFFLFLFL"
            };
            IPositionFinal positionFinal3 = service.GetFinalPostion(1, positionStarting3);

            Assert.AreEqual(2, positionFinal3.FinalXPosition);
            Assert.AreEqual(3, positionFinal3.FinalYPosition);
            Assert.AreEqual('S', positionFinal3.FinalOrientation);
            Assert.AreEqual(false, positionFinal3.Lost);
        }
Exemplo n.º 2
0
        public void Test_RobotPositionWebAPI_EndPoint2_Grid_Id_Rover()
        {
            IGridCoordinate gridCoordinate = new GridCoordinate {
                MaxXCoordinate = 5, MaxYCoordinate = 3
            };
            IPositionStarting positionStarting1 = new PositionStarting
            {
                StartingXPosition = 1,
                StartingYPosition = 1,
                Orientation       = 'E',
                Instructions      = "RFRFRFRF"
            };
            IPositionStarting positionStarting2 = new PositionStarting
            {
                StartingXPosition = 3,
                StartingYPosition = 2,
                Orientation       = 'N',
                Instructions      = "FRRFLLFFRRFLL"
            };
            IPositionStarting positionStarting3 = new PositionStarting
            {
                StartingXPosition = 0,
                StartingYPosition = 3,
                Orientation       = 'W',
                Instructions      = "LLFFFLFLFL"
            };
            string endPointURI = (new Uri(baseUri, "grid/1/rover")).ToString();

            using (var client = new HttpClient())
            {
                var response = client.PostAsync(endPointURI, GetStringContent(positionStarting1)).Result;
                Assert.IsTrue(response.IsSuccessStatusCode);
                if (response.IsSuccessStatusCode)
                {
                    IPositionFinal positionFinal = JsonConvert.DeserializeObject <PositionFinal>(response.Content.ReadAsStringAsync().Result);
                    Assert.AreEqual(1, positionFinal.FinalXPosition);
                    Assert.AreEqual(1, positionFinal.FinalYPosition);
                    Assert.AreEqual('E', positionFinal.FinalOrientation);
                    Assert.AreEqual(false, positionFinal.Lost);
                }
                response = client.PostAsync(endPointURI, GetStringContent(positionStarting2)).Result;
                Assert.IsTrue(response.IsSuccessStatusCode);
                if (response.IsSuccessStatusCode)
                {
                    IPositionFinal positionFinal = JsonConvert.DeserializeObject <PositionFinal>(response.Content.ReadAsStringAsync().Result);
                    Assert.AreEqual(3, positionFinal.FinalXPosition);
                    Assert.AreEqual(3, positionFinal.FinalYPosition);
                    Assert.AreEqual('N', positionFinal.FinalOrientation);
                    Assert.AreEqual(true, positionFinal.Lost);
                }
                response = client.PostAsync(endPointURI, GetStringContent(positionStarting3)).Result;
                Assert.IsTrue(response.IsSuccessStatusCode);
                if (response.IsSuccessStatusCode)
                {
                    IPositionFinal positionFinal = JsonConvert.DeserializeObject <PositionFinal>(response.Content.ReadAsStringAsync().Result);
                    Assert.AreEqual(2, positionFinal.FinalXPosition);
                    Assert.AreEqual(3, positionFinal.FinalYPosition);
                    Assert.AreEqual('S', positionFinal.FinalOrientation);
                    Assert.AreEqual(false, positionFinal.Lost);
                }
            }
        }
Exemplo n.º 3
0
 public async Task <IPositionFinal> GetFinalPostionAsync(int gridId, PositionStarting value)
 {
     return(await _service.GetFinalPostionAsync(gridId, value));
 }