示例#1
0
        public void Route_payload_should_be_obeyed()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var expectedQuantity  = 5;
            var startingResources = new Dictionary <string, int>
            {
                { expectedResource, expectedQuantity }
            };

            expectedOriginDepot.NegotiateProvider(startingResources);

            var result = route.AddResource(expectedResource, expectedQuantity + 1);

            Assert.IsType <InsufficientPayloadNegotiationResult>(result);
            Assert.False(route.Resources.ContainsKey(expectedResource));
        }
示例#2
0
        public void Origin_depot_must_have_requsted_resource()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var requestedQuantity = 5;

            var result = route.AddResource(expectedResource, requestedQuantity);

            Assert.IsType <FailedNegotiationResult>(result);
            Assert.False(route.Resources.ContainsKey(expectedResource));
        }
示例#3
0
        /// <summary>
        /// 增加测试路线信息
        /// </summary>
        /// <param name="tr"></param>
        public void Insert(TestRoute tr)
        {
            //增加测试路线基础信息Idx自增
            db.InsertInto("TestRouteBaseInfo", new string[]
                          { "TestRoutes", "LineMileage",
                            "Material", "Time", "Picture" },
                          new string[] {
                tr.TestRouteBase.TestRoutes.ToString(),
                tr.TestRouteBase.LineMileage.ToString(),
                tr.TestRouteBase.Material.ToString(),
                tr.TestRouteBase.Time.ToString(),
                tr.TestRouteBase.Picture.ToString(),
            });

            string lastIdx = db.ExecuteQueryLastIdx();

            //增加测试路线基础信息对应的路面类型信息,Id自增
            for (int i = 0; i < tr.PavementTypeInfo.Count(); i++)
            {
                db.InsertInto("PavementTypeInfo", new string[]
                              { "Idx", "Name", "Length", "Percent", "Picture" }
                              , new string[] {
                    lastIdx,
                    tr.PavementTypeInfo[i].Name.ToString(),
                    tr.PavementTypeInfo[i].Length.ToString(),
                    tr.PavementTypeInfo[i].Percent.ToString(),
                    tr.PavementTypeInfo[i].Picture.ToString()
                });
            }
        }
示例#4
0
        public void Routes_should_have_an_origin_destination_and_payload()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);

            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);

            Assert.NotNull(route);
            Assert.Equal(expectedOriginBody, route.OriginBody);
            Assert.Equal(expectedOriginBiome, route.OriginBiome);
            Assert.Equal(expectedDestinationBody, route.DestinationBody);
            Assert.Equal(expectedDestinationBiome, route.DestinationBiome);
            Assert.Equal(expectedPayload, route.Payload);
            Assert.Equal(expectedOriginDepot, route.OriginDepot);
            Assert.Equal(expectedDestinationDepot, route.DestinationDepot);
        }
示例#5
0
 /// <summary>
 /// 修改测试路线信息
 /// </summary>
 /// <param name="tr"></param>
 public void Update(TestRoute tr)
 {
     //先修改测试路线基础信息
     db.UpdateInto("TestRouteBaseInfo", new string[] {
         "Idx", "TestRoutes", "LineMileage",
         "Material", "Time", "Picture"
     }, new string[] {
         tr.TestRouteBase.Index.ToString(),
         tr.TestRouteBase.TestRoutes.ToString(),
         tr.TestRouteBase.LineMileage.ToString(),
         tr.TestRouteBase.Material.ToString(),
         tr.TestRouteBase.Time.ToString(),
         tr.TestRouteBase.Picture.ToString(),
     }, "Idx", tr.TestRouteBase.Index.ToString()
                   );
     //删除测试路线对应的所有路面类型信息
     DeleteAllPavementTypeInfo(tr.TestRouteBase.Index);
     //再增加测试路线对应的所有路面类型信息
     for (int i = 0; i < tr.PavementTypeInfo.Count(); i++)
     {
         db.InsertInto("PavementTypeInfo", new string[]
                       { "Idx", "Name", "Length", "Percent", "Picture" },
                       new string[] {
             tr.TestRouteBase.Index.ToString(),
             tr.PavementTypeInfo[i].Name.ToString(),
             tr.PavementTypeInfo[i].Length.ToString(),
             tr.PavementTypeInfo[i].Percent.ToString(),
             tr.PavementTypeInfo[i].Picture.ToString()
         });
     }
 }
        public void LoadFromZip_OneBusRoute()
        {
            TestRoute busRoute = new TestRoute
            {
                RouteId        = "1",
                AgencyId       = "1",
                RouteShortName = "1",
                RouteLongName  = "",
                RouteDesc      = "Key Bus Route (Frequent Service)",
                RouteType      = "3",
                RouteUrl       = "",
                RouteColor     = "FFFF7C",
                RouteTextColor = "000000",
                RouteSortOrder = 100
            };

            _helper.TargetFileName = "onebusroute.zip";
            _helper.FeedInfos.Add(TestFeedInfo.Sample);
            _helper.Routes.Add(busRoute);
            _helper.MakeZipFile();

            Download target = new Download
            {
                download_date      = DateTime.Now,
                download_file_name = _helper.TargetFilePath
            };

            target.LoadFromZip();

            // we're not currently loading anything but commuter rail
            Assert.AreEqual(0, target.Routes.Count, "checking Routes count");
        }
示例#7
0
        public void Can_assign_resources_to_a_route()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var expectedQuantity  = 5;
            var startingResources = new Dictionary <string, int>
            {
                { expectedResource, expectedQuantity }
            };

            expectedOriginDepot.NegotiateProvider(startingResources);

            var result = route.AddResource(expectedResource, expectedQuantity);

            Assert.IsType <OkNegotiationResult>(result);
            Assert.True(route.Resources.ContainsKey(expectedResource));
            Assert.Equal(expectedQuantity, route.Resources[expectedResource]);
        }
示例#8
0
        public void SecondRegisteredDoesNotRouteTest()
        {
            TestRoute tr = new TestRoute();

            ProtoRouter.registerRoute(DataWrapper.MsgOneofCase.ExecuteCommand, tr);
            ProtoRouter.routeProtobuf(wrapper, "", null);
            Assert.IsNull(tr.test);
        }
示例#9
0
 public void OneTimeSetup()
 {
     route  = new TestRoute();
     route2 = new TestRoute();
     ProtoRouter.registerRoute(DataWrapper.MsgOneofCase.ExecuteCommand, route);
     ProtoRouter.registerRoute(DataWrapper.MsgOneofCase.CommandChange, route2);
     wrapper = new DataWrapper();
     wrapper.ExecuteCommand      = new ExecuteCommand();
     wrapper.ExecuteCommand.Name = ts;
 }
示例#10
0
        public void TestRouteMessage(TestRouteBase trb)
        {
            TestRoute tr = new TestRoute();

            foreach (var item in testRouteList)
            {
                if (item.TestRouteBase == trb)
                {
                    tr = item;
                    Messenger.Default.Send(tr, "TestRouteMessage");
                }
            }
        }
示例#11
0
        public void Should_not_allow_changes_if_destination_dependencies_would_break()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var providedQuantity  = 5;
            var usedQuantity      = 3;
            var startingResources = new Dictionary <string, int>
            {
                { expectedResource, providedQuantity }
            };

            expectedOriginDepot.NegotiateProvider(startingResources);

            var addResult         = route.AddResource(expectedResource, providedQuantity);
            var consumedResources = new Dictionary <string, int>
            {
                { expectedResource, usedQuantity }
            };

            expectedDestinationDepot.NegotiateConsumer(consumedResources);

            var removeResult = route.RemoveResource(expectedResource, providedQuantity);

            Assert.IsType <OkNegotiationResult>(addResult);
            Assert.IsType <BrokenNegotiationResult>(removeResult);
            Assert.True(route.Resources.ContainsKey(expectedResource));
            Assert.Equal(providedQuantity, route.Resources[expectedResource]);
            var depotResources = expectedDestinationDepot.GetResources()
                                 .Where(r => r.ResourceName == expectedResource)
                                 .FirstOrDefault();

            Assert.Equal(usedQuantity, depotResources.Outgoing);
        }
        public void LoadFromZip_OneCrRoute()
        {
            TestRoute expectedRoute = new TestRoute
            {
                RouteId        = "CR-Foo",
                AgencyId       = "1",
                RouteShortName = "Foo",
                RouteLongName  = "Foo from Bar to Bletch",
                RouteDesc      = "Something Fooish",
                RouteType      = "2",
                RouteUrl       = "",
                RouteColor     = "8B118F",
                RouteTextColor = "FFFFFF",
                RouteSortOrder = 1
            };

            _helper.TargetFileName = "oneroute.zip";
            _helper.FeedInfos.Add(TestFeedInfo.Sample);
            _helper.Routes.Add(expectedRoute);
            _helper.MakeZipFile();

            Download target = new Download
            {
                download_date      = DateTime.Now,
                download_file_name = _helper.TargetFilePath
            };

            target.LoadFromZip();

            Assert.AreEqual(1, target.Routes.Count, "checking Routes count");
            var actualRoute = target.Routes.ElementAt(0);

            Assert.AreEqual(expectedRoute.RouteId, actualRoute.route_id, "checking route_id");
            Assert.AreEqual(expectedRoute.AgencyId, actualRoute.agency_id, "checking agency_id");
            Assert.AreEqual(expectedRoute.RouteShortName, actualRoute.route_short_name, "checking route_short_name");
            Assert.AreEqual(expectedRoute.RouteLongName, actualRoute.route_long_name, "checking route_long_name");
            Assert.AreEqual(expectedRoute.RouteDesc, actualRoute.route_desc, "checking route_desc");
            Assert.AreEqual(expectedRoute.RouteUrl, actualRoute.route_url, "checking route_url");
            Assert.AreEqual(expectedRoute.RouteColor, actualRoute.route_color, "checking route_color");
            Assert.AreEqual(expectedRoute.RouteTextColor, actualRoute.route_text_color, "checking route_text_color");
        }
示例#13
0
        public void Routes_require_a_nonzero_payload()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 0;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);

            Assert.Throws <RouteInsufficientPayloadException>(() =>
            {
                var route = new TestRoute(
                    expectedOriginBody,
                    expectedOriginBiome,
                    expectedDestinationBody,
                    expectedDestinationBiome,
                    expectedPayload,
                    persistenceLayer);
            });
        }
示例#14
0
        public void Can_remove_route_resources(int startingPayload, int amountToRemove)
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                startingPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var startingResources = new Dictionary <string, int>
            {
                { expectedResource, startingPayload }
            };

            expectedOriginDepot.NegotiateProvider(startingResources);

            var addResult    = route.AddResource(expectedResource, startingPayload);
            var removeResult = route.RemoveResource(expectedResource, amountToRemove);

            Assert.IsType <OkNegotiationResult>(addResult);
            Assert.IsType <OkNegotiationResult>(removeResult);
            if (startingPayload == amountToRemove)
            {
                Assert.False(route.Resources.ContainsKey(expectedResource));
            }
            else
            {
                Assert.True(route.Resources.ContainsKey(expectedResource));
                Assert.Equal(startingPayload - amountToRemove, route.Resources[expectedResource]);
            }
        }
示例#15
0
        public void Origin_depot_availability_should_be_obeyed()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var requestedQuantity = 5;
            var availableQuantity = 4;
            var startingResources = new Dictionary <string, int>
            {
                { expectedResource, availableQuantity }
            };

            expectedOriginDepot.NegotiateProvider(startingResources);

            var result = route.AddResource(expectedResource, requestedQuantity);

            Assert.IsType <FailedNegotiationResult>(result);
            Assert.False(route.Resources.ContainsKey(expectedResource));
            var depotResource = expectedOriginDepot.GetResources()
                                .Where(r => r.ResourceName == expectedResource)
                                .FirstOrDefault();

            Assert.Equal(availableQuantity, depotResource.Incoming);
            Assert.Equal(0, depotResource.Outgoing);
            Assert.Equal(availableQuantity, depotResource.Available);
        }
示例#16
0
        /// <summary>
        /// 通过Messenger发送消息获取TestRoute信息
        /// </summary>
        /// <param name="tr">选中的测试路线</param>
        private void TestRouteMessage(TestRoute tr)
        {
            //拷贝tr数据

            //首先拷贝路面类型数据
            //ptInfo.Clear();
            foreach (var item in tr.pavementTypeInfo)
            {
                PavementType r = Mapper <PavementType, PavementType>(item);
                ptInfo.Add(r);
            }

            //拷贝路面基础信息数据
            trbSelf = Mapper <TestRouteBase, TestRouteBase>(tr.TestRouteBase);

            trSelf = new TestRoute {
                TestRouteBase = trbSelf, pavementTypeInfo = ptInfo
            };

            this.pavementTypeInfoDataGrid.ItemsSource = trSelf.PavementTypeInfo;
            this.DataContext = trSelf;
        }
示例#17
0
        public void Route_resources_should_be_added_to_destination_depot()
        {
            var expectedOriginBody       = "Kerbin";
            var expectedOriginBiome      = "LaunchPad";
            var expectedDestinationBody  = "Mun";
            var expectedDestinationBiome = "East Crater";
            var expectedPayload          = 5;
            var persistenceLayer         = new TestPersister();
            var expectedOriginDepot      = persistenceLayer.CreateDepot(expectedOriginBody, expectedOriginBiome);
            var expectedDestinationDepot = persistenceLayer.CreateDepot(expectedDestinationBody, expectedDestinationBiome);
            var route = new TestRoute(
                expectedOriginBody,
                expectedOriginBiome,
                expectedDestinationBody,
                expectedDestinationBiome,
                expectedPayload,
                persistenceLayer);
            var expectedResource  = "Ore";
            var expectedQuantity  = 5;
            var startingResources = new Dictionary <string, int>
            {
                { expectedResource, expectedQuantity }
            };

            expectedOriginDepot.NegotiateProvider(startingResources);

            var result = route.AddResource(expectedResource, expectedQuantity);

            Assert.IsType <OkNegotiationResult>(result);
            var depotResources = expectedDestinationDepot.GetResources();
            var resource       = depotResources
                                 .Where(r => r.ResourceName == expectedResource)
                                 .FirstOrDefault();

            Assert.Equal(expectedQuantity, resource.Incoming);
            Assert.Equal(0, resource.Outgoing);
            Assert.Equal(expectedQuantity, resource.Available);
        }
示例#18
0
    void OnMouseUp()
    {
        Vector3 GridPosition = new Vector3(0.0f, 0.0f, 0.0f);

        GridPosition[0] = Convert.ToSingle(RoundToHalf(transform.position[0]));
        if (tall)
        {
            double modifiedNumber = Convert.ToDouble(transform.position[1]);
            GridPosition[1] = Convert.ToSingle(Math.Round(modifiedNumber, 0));
            //GridPosition[1] = Convert.ToSingle(RoundToHalf(transform.position[1]+0.5f));
        }
        else
        {
            GridPosition[1] = Convert.ToSingle(RoundToHalf(transform.position[1]));
        }
        GridPosition[2]    = Convert.ToSingle(RoundToHalf(transform.position[2]));
        transform.position = GridPosition;
        TestRoute.MapObject(gameObject);
        if (tall)
        {
            TestRoute.MapObject(gameObject, true);
        }
        //TestRoute.FindCoordinates(gameObject);
    }
示例#19
0
 //增加测试路线
 private void Insert(TestRoute tr)
 {
     //testRouteDao.Insert(tr);
     testRouteDao.Insert(tr);
     SelectAll();
 }
示例#20
0
 //修改测试路线
 private void Update(TestRoute tr)
 {
     testRouteDao.Update(tr);
     SelectAll();
 }
示例#21
0
        /// <summary>
        /// 提交 需要判断新增还是编辑,通过父窗口传过来的提交测试路线信息还是修改测试路线信息
        /// 调用对应的command命令
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <param name="OperationFlag">操作类型</param>
        private void Submit(object sender, RoutedEventArgs e)
        {
            //先校验数据格式是否正确
            if (Verify() == false)
            {
                MessageBox.Show("请检查数据格式!");
                return;
            }

            //确认提交
            OKWindow okWindow = new OKWindow("提交数据", "确实要提交这条数据吗?");

            okWindow.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            okWindow.ShowDialog();
            if (okWindow.Ret == false)
            {
                return;
            }

            //再执行相关操作
            if (OperationFlag == "Insert")
            {
                TestRouteBase trb = new TestRouteBase
                {
                    Index       = 0,
                    LineMileage = this.trbLineMileage.Text,
                    Material    = this.trbMaterial.Text,
                    Picture     = this.trbPicture.Source as BitmapImage,
                    TestRoutes  = this.trbTestRoutes.Text,
                    Time        = this.trbTime.Text
                };

                //如果是Insert必须保证路面类型必须有一条
                TestRoute tr = new TestRoute {
                    TestRouteBase = trb, PavementTypeInfo = ptInfo
                };

                var MyVM = this.testRouteViewModelSelf;
                if (MyVM != null && MyVM.InsertCommand.CanExecute(tr))
                {
                    MyVM.InsertCommand.Execute(tr);
                }
            }
            else if (OperationFlag == "Update")
            {
                TestRouteBase trb = new TestRouteBase
                {
                    Index       = this.trSelf.TestRouteBase.Index,
                    LineMileage = this.trbLineMileage.Text,
                    Material    = this.trbMaterial.Text,
                    Picture     = this.trbPicture.Source as BitmapImage,
                    TestRoutes  = this.trbTestRoutes.Text,
                    Time        = this.trbTime.Text
                };

                TestRoute tr = new TestRoute {
                    TestRouteBase = trb, PavementTypeInfo = ptInfo
                };

                var MyVM = this.testRouteViewModelSelf;
                if (MyVM != null && MyVM.UpdateCommand.CanExecute(tr))
                {
                    MyVM.UpdateCommand.Execute(tr);
                }
            }

            this.Close();
        }
示例#22
0
 public void SecondRouteDoesNotThrow()
 {
     route = new TestRoute();
     ProtoRouter.registerRoute(DataWrapper.MsgOneofCase.ExecuteCommand, route);
     Assert.True(true);
 }