public void Redo_Template_SubScope_Points()
        {
            //Arrange
            var      Template = ModelCreation.TestTemplates(rand);
            TECPoint edit     = new TECPoint();

            edit.Type = IOType.AI;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points.Add(edit);
            var expected = new ObservableCollection <TECPoint>();

            foreach (TECPoint item in Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points)
            {
                expected.Add(item);
            }
            testStack.Undo();
            testStack.Redo();

            //assert
            var actual = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points;

            Assert.AreEqual(expected.Count, actual.Count, "Not Redone");
        }
        public void Undo_Template_MiscCost()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            ObservableCollection <TECMisc> expected = new ObservableCollection <TECMisc>();

            foreach (TECMisc item in Template.Templates.MiscCostTemplates)
            {
                expected.Add(item);
            }
            TECMisc edit = new TECMisc(CostType.TEC);

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);
            int           beforeCount = testStack.UndoCount();

            Template.Templates.MiscCostTemplates.Add(edit);
            Assert.AreEqual((beforeCount + 1), testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            var actual = Template.Templates.MiscCostTemplates;

            Assert.AreEqual(expected.Count, actual.Count, "Not Undone");
        }
        public void Redo_Template_SubScope_Device()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            ObservableCollection <TECConnectionType> types = new ObservableCollection <TECConnectionType>();

            types.Add(Template.Catalogs.ConnectionTypes[0]);
            TECDevice edit = new TECDevice(types, new List <TECProtocol>(),
                                           Template.Catalogs.Manufacturers[0]);

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices.Add(edit);
            var expected = new ObservableCollection <IEndDevice>();

            foreach (IEndDevice item in Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices)
            {
                expected.Add(item);
            }
            testStack.Undo();
            testStack.Redo();

            //assert
            var actual = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices;

            Assert.AreEqual(expected.Count, actual.Count, "Not Redone");
        }
        public void Undo_Template_System_Equipment()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            var system   = Template.Templates.SystemTemplates[0];
            ObservableCollection <TECEquipment> expected = new ObservableCollection <TECEquipment>();

            foreach (TECEquipment item in system.Equipment)
            {
                expected.Add(item);
            }
            TECEquipment edit = new TECEquipment();

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            system.Equipment.Add(edit);
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            var actual = system.Equipment;

            Assert.AreEqual(expected.Count, actual.Count, "Not Undone");
        }
        public void Undo_Template_SubScope_Points()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            var subScope = Template.Templates.SubScopeTemplates[0];
            ObservableCollection <TECPoint> expected = new ObservableCollection <TECPoint>();

            foreach (TECPoint item in subScope.Points)
            {
                expected.Add(item);
            }
            TECPoint edit = new TECPoint();

            edit.Type = IOType.AI;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            subScope.Points.Add(edit);
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            var actual = subScope.Points;

            Assert.AreEqual(expected.Count, actual.Count, "Not Undone");
        }
        public void Undo_Template_Equipment_SubScope()
        {
            //Arrange
            var Template  = ModelCreation.TestTemplates(rand);
            var equipment = Template.Templates.EquipmentTemplates[0];
            ObservableCollection <TECSubScope> expected = new ObservableCollection <TECSubScope>();

            foreach (TECSubScope item in equipment.SubScope)
            {
                expected.Add(item);
            }
            TECSubScope edit = new TECSubScope();

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            equipment.SubScope.Add(edit);
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            var actual = equipment.SubScope;

            Assert.AreEqual(expected.Count, actual.Count, "Not Undone");
        }
        public void Redo_Template_Panel()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            ObservableCollection <TECPanel> expected = new ObservableCollection <TECPanel>();

            foreach (TECPanel item in Template.Templates.PanelTemplates)
            {
                expected.Add(item);
            }
            TECPanel edit = new TECPanel(Template.Catalogs.PanelTypes[0]);

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);
            int           beforeCount = testStack.UndoCount();

            Template.Templates.PanelTemplates.Add(edit);
            Assert.AreEqual((beforeCount + 1), testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();
            testStack.Redo();

            //assert
            var actual = Template.Templates.PanelTemplates;

            Assert.AreEqual(expected.Count + 1, actual.Count, "Not Redone");
        }
示例#8
0
        protected override void handleLoaded(TECBid loadedBid)
        {
            if (loadedBid != null)
            {
                bid        = loadedBid;
                watcher    = new ChangeWatcher(bid);
                doStack    = new DoStacker(watcher);
                deltaStack = new DeltaStacker(watcher, bid);

                if (databaseManager == null && currentTemplatesPath != "")
                {
                    DatabaseManager <TECTemplates> templatesDatabaseManager = new DatabaseManager <TECTemplates>(currentTemplatesPath);
                    templatesDatabaseManager.LoadComplete += handleLoadedTemplates;
                    ViewEnabled = false;
                    templatesDatabaseManager.AsyncLoad();
                }
                else
                {
                    estimate    = new TECEstimator(bid, watcher);
                    EditorVM    = new EstimateEditorVM(bid, watcher, estimate);
                    CurrentVM   = EditorVM;
                    ViewEnabled = true;
                }
            }
            else
            {
                this.splashVM.LoadingText = "";
                ViewEnabled = true;
            }
        }
        public void Redo_Template_Equipment_Name()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            string edit     = "Edit";

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SystemTemplates[0].Equipment[0].Name = edit;
            testStack.Undo();
            testStack.Redo();

            //assert
            string actual = Template.Templates.SystemTemplates[0].Equipment[0].Name;

            Assert.AreEqual(edit, actual, "Not Redone");
        }
        public void Redo_Template_Device_Cost()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            double edit     = 123;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            ((Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices[0] as TECDevice) as TECDevice).Price = edit;
            testStack.Undo();
            testStack.Redo();

            //assert
            double actual = ((Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices[0] as TECDevice) as TECDevice).Price;

            Assert.AreEqual(edit, actual, "Not Redone");
        }
        public void Redo_Template_Device_Description()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            string edit     = "Edit";

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            (Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices[0] as TECDevice).Description = edit;
            testStack.Undo();
            testStack.Redo();

            //assert
            string actual = (Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices[0] as TECDevice).Description;

            Assert.AreEqual(edit, actual, "Not Redone");
        }
        public void Redo_Template_Point_Type()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            IOType edit     = IOType.AO;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Type = edit;
            testStack.Undo();
            testStack.Redo();

            //assert
            IOType actual = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Type;

            Assert.AreEqual(edit, actual, "Not Redone");
        }
        public void Redo_Template_Device_Manufacturer()
        {
            //Arrange
            var             Template = ModelCreation.TestTemplates(rand);
            TECManufacturer edit     = new TECManufacturer();

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            (Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices[0] as TECDevice).Manufacturer = edit;
            testStack.Undo();
            testStack.Redo();

            //assert
            TECManufacturer actual = (Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Devices[0] as TECDevice).Manufacturer;

            Assert.AreEqual(edit, actual, "Not Redone");
        }
        public void Undo_Template_Point_Quantity()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            int expected = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Quantity;
            int edit     = 3;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Quantity = edit;
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            int actual = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Quantity;

            Assert.AreEqual(expected, actual, "Not Undone");
        }
        public void Undo_Template_SubScope_AssociatedCost()
        {
            //Arrange
            var Template           = ModelCreation.TestTemplates(rand);
            var subScope           = Template.Templates.SubScopeTemplates[0];
            int expectedCount      = subScope.AssociatedCosts.Count;
            TECAssociatedCost edit = new TECAssociatedCost(CostType.Electrical);

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            subScope.AssociatedCosts.Add(edit);
            testStack.Undo();

            //assert
            int actual = subScope.AssociatedCosts.Count;

            Assert.AreEqual(expectedCount, actual, "Not Undone");
        }
        public void Undo_Template_Point_Type()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            string expected = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Type.ToString();
            IOType edit     = IOType.AO;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Type = edit;
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            string actual = Template.Templates.SystemTemplates[0].Equipment[0].SubScope[0].Points[0].Type.ToString();;

            Assert.AreEqual(expected, actual, "Not Undone");
        }
示例#17
0
        protected override void handleLoaded(TECTemplates loaded)
        {
            if (loaded == null)
            {
                MessageBox.Show("There was an issue loading this file.");
                splashVM.LoadingText = "";
            }
            else
            {
                templates  = loaded;
                watcher    = new ChangeWatcher(templates);
                doStack    = new DoStacker(watcher);
                deltaStack = new DeltaStacker(watcher, templates);

                EditorVM  = new TemplatesEditorVM(templates);
                CurrentVM = EditorVM;
            }
            ViewEnabled = true;
        }
        public void Undo_Template_Device_Cost()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            var    device   = Template.Catalogs.Devices[0];
            double expected = device.Price;
            double edit     = 123;

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            device.Price = edit;
            //Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            double actual = device.Price;

            Assert.AreEqual(expected, actual, "Not Undone");
        }
        public void Undo_Template_Device_Description()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            var    device   = Template.Catalogs.Devices[0];
            string expected = device.Description;
            string edit     = "Edit";

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            device.Description = edit;
            //Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            string actual = device.Description;

            Assert.AreEqual(expected, actual, "Not Undone");
        }
        public void Undo_Template_SubScope_Name()
        {
            //Arrange
            var    Template = ModelCreation.TestTemplates(rand);
            var    subScope = Template.Templates.SubScopeTemplates[0];
            string expected = subScope.Name;
            string edit     = "Edit";

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            subScope.Name = edit;
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            string actual = subScope.Name;

            Assert.AreEqual(expected, actual, "Not Undone");
        }
        public void Undo_Template_Device_Manufacturer()
        {
            //Arrange
            var             Template = ModelCreation.TestTemplates(rand);
            var             device   = Template.Catalogs.Devices[0];
            Guid            expected = new Guid(device.Manufacturer.Guid.ToString());
            TECManufacturer edit     = new TECManufacturer();

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            device.Manufacturer = edit;
            //Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            Guid actual = new Guid(device.Manufacturer.Guid.ToString());

            Assert.AreEqual(expected, actual, "Not Undone");
        }
        public void Undo_Template_Device_ConnectionType()
        {
            //Arrange
            var Template           = ModelCreation.TestTemplates(rand);
            var device             = Template.Catalogs.Devices[0];
            int expected           = device.HardwiredConnectionTypes.Count;
            TECConnectionType edit = Template.Catalogs.ConnectionTypes[0];

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            device.HardwiredConnectionTypes.Add(edit);
            //Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            int actual = device.HardwiredConnectionTypes.Count;

            Assert.AreEqual(expected, actual, "Not Undone");
        }
        public void Undo_Template_Panel_Name()
        {
            //Arrange
            var      Template     = ModelCreation.TestTemplates(rand);
            TECPanel expected     = Template.Templates.PanelTemplates[0];
            string   expectedName = expected.Name;

            string edit = "edit";

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);
            int           beforeCount = testStack.UndoCount();

            Template.Templates.PanelTemplates[0].Name = edit;
            Assert.AreEqual((beforeCount + 1), testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            TECPanel actual = Template.Templates.PanelTemplates[0];

            Assert.AreEqual(expectedName, actual.Name, "Not Undone");
        }
        public void Undo_Template_SubScope_Device()
        {
            //Arrange
            var Template = ModelCreation.TestTemplates(rand);
            var subScope = Template.Templates.SubScopeTemplates[0];
            ObservableCollection <IEndDevice> expected = new ObservableCollection <IEndDevice>();

            foreach (IEndDevice item in subScope.Devices)
            {
                expected.Add(item);
            }

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            subScope.Devices.Add(Template.Catalogs.Devices[0]);
            Assert.AreEqual(1, testStack.UndoCount(), "Not added to undo stack");
            testStack.Undo();

            //assert
            var actual = subScope.Devices;

            Assert.AreEqual(expected.Count, actual.Count, "Not Undone");
        }
        public void Redo_Template_SubScope()
        {
            //Arrange
            var         Template = ModelCreation.TestTemplates(rand);
            TECSubScope edit     = new TECSubScope();

            //Act
            ChangeWatcher watcher = new ChangeWatcher(Template); DoStacker testStack = new DoStacker(watcher);

            Template.Templates.SubScopeTemplates.Add(edit);
            var expected = new ObservableCollection <TECSubScope>();

            foreach (TECSubScope item in Template.Templates.SubScopeTemplates)
            {
                expected.Add(item);
            }
            testStack.Undo();
            testStack.Redo();

            //assert
            var actual = Template.Templates.SubScopeTemplates;

            Assert.AreEqual(expected.Count, actual.Count, "Not Undone");
        }