Esempio n. 1
0
        public void StandardFactory_Throws()
        {
            var graph      = new BidirectionalGraph <int, Edge <int> >();
            var context    = new TestHighlightContext(graph);
            var controller = new TestHighlightController(graph);

            var factory = new StandardHighlightAlgorithmFactory <int, Edge <int>, BidirectionalGraph <int, Edge <int> > >();

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            // ReSharper disable AssignNullToNotNullAttribute
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(null, context, controller, null));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(string.Empty, null, controller, null));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(string.Empty, context, null, null));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(null, null, controller, null));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(null, context, null, null));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(string.Empty, null, null, null));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateAlgorithm(null, null, null, null));

            Assert.Throws <ArgumentNullException>(
                () => factory.CreateParameters(null, new HighlightParameters()));
            Assert.Throws <ArgumentNullException>(
                () => factory.CreateParameters(null, null));

            Assert.Throws <ArgumentNullException>(() => factory.GetHighlightMode(null));
            // ReSharper restore AssignNullToNotNullAttribute
            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
        }
Esempio n. 2
0
        public void StandardFactory()
        {
            var graph      = new BidirectionalGraph <int, Edge <int> >();
            var context    = new TestHighlightContext(graph);
            var controller = new TestHighlightController(graph);

            var factory = new StandardHighlightAlgorithmFactory <int, Edge <int>, BidirectionalGraph <int, Edge <int> > >();

            CollectionAssert.AreEqual(new[] { "Simple" }, factory.HighlightModes);


            Assert.IsNull(
                factory.CreateAlgorithm(
                    string.Empty,
                    context,
                    controller,
                    new HighlightParameters()));

            Assert.IsInstanceOf <SimpleHighlightAlgorithm <int, Edge <int>, BidirectionalGraph <int, Edge <int> > > >(
                factory.CreateAlgorithm(
                    "Simple",
                    context,
                    controller,
                    new HighlightParameters()));

            Assert.IsInstanceOf <SimpleHighlightAlgorithm <int, Edge <int>, BidirectionalGraph <int, Edge <int> > > >(
                factory.CreateAlgorithm(
                    "Simple",
                    context,
                    controller,
                    null));


            var parameters = new HighlightParameters();
            IHighlightParameters createdParameters = factory.CreateParameters(string.Empty, parameters);

            Assert.IsInstanceOf <HighlightParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);

            createdParameters = factory.CreateParameters("Simple", parameters);
            Assert.IsInstanceOf <HighlightParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);

            createdParameters = factory.CreateParameters("Simple", null);
            Assert.IsInstanceOf <HighlightParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);

            createdParameters = factory.CreateParameters("NotExist", null);
            Assert.IsNull(createdParameters);


            Assert.IsFalse(factory.IsValidMode(null));
            Assert.IsTrue(factory.IsValidMode(string.Empty));
            Assert.IsTrue(factory.IsValidMode("Simple"));
            Assert.IsFalse(factory.IsValidMode("simple"));


            var algorithm1 = new TestHighlightAlgorithm(controller, new HighlightParameters());

            Assert.IsNull(factory.GetHighlightMode(algorithm1));

            var algorithm2 = new SimpleHighlightAlgorithm <int, Edge <int>, BidirectionalGraph <int, Edge <int> > >(controller, new HighlightParameters());

            Assert.AreEqual("Simple", factory.GetHighlightMode(algorithm2));
        }