public void CopyFBOControllerTest()
        {
            //Arrange
            TECCatalogs      catalogs   = ModelCreation.TestCatalogs(rand);
            TECFBOController controller = ModelCreation.TestFBOController(catalogs, rand);
            TECFBOController copy       = controller.CopyController(new Dictionary <Guid, Guid>()) as TECFBOController;

            //TECTagged
            Assert.AreEqual(controller.Name, copy.Name);
            Assert.AreEqual(controller.Description, copy.Description);
            Assert.IsTrue(controller.Tags.SequenceEqual(copy.Tags));

            //TECScope
            Assert.IsTrue(controller.AssociatedCosts.SequenceEqual(copy.AssociatedCosts));

            //TECLocated
            Assert.AreEqual(controller.Location, copy.Location);

            //TECController
            Assert.AreEqual(controller.IsServer, copy.IsServer);

            //TECFBOController
            foreach (TECPoint point in controller.Points)
            {
                Assert.IsTrue(copy.Points.Any(pointCopy =>
                {
                    return(pointCopy.Label == point.Label &&
                           pointCopy.Type == point.Type &&
                           pointCopy.Quantity == point.Quantity);
                }));
            }
        }
        public void CopyControllerTest()
        {
            Random rand     = new Random(0);
            var    catalogs = ModelCreation.TestCatalogs(rand);

            var controller = new TECFBOController(catalogs);

            controller.Name = "test";

            var copy = controller.CopyController(new Dictionary <Guid, Guid>());

            Assert.IsTrue(controller.IO.Protocols.SequenceEqual(copy.IO.Protocols));
            Assert.AreEqual(controller.Name, copy.Name);
        }