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 }
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)); }