public void ShouldConfigurePropertiesProperlyOnConstructor()
        {
            AllDirectionsSequenceQuantitySearch allDirectionsSequenceQuantitySearch = new AllDirectionsSequenceQuantitySearch("SEQUENCE");

            Assert.AreEqual(allDirectionsSequenceQuantitySearch.Type, AllDirectionsSequenceQuantitySearch.ClassType);
            Assert.AreEqual(allDirectionsSequenceQuantitySearch.SequenceToFind, "SEQUENCE");
        }
        public void ShouldReturnsObjectOnCreateInstance()
        {
            AllDirectionsSequenceQuantitySearch validSearch   = new AllDirectionsSequenceQuantitySearch("SEQUENCE");
            AllDirectionsSequenceQuantitySearch invalidSearch = new AllDirectionsSequenceQuantitySearch("INVALID");
            Mock <IUnityContainer> containerMock = new Mock <IUnityContainer>();

            containerMock.Setup(m => m.Resolve(typeof(IQuantitySearch), "allDirectionsSequenceQuantitySearch", It.IsAny <ParameterOverride>())).Returns(invalidSearch);
            containerMock.Setup(m => m.Resolve(typeof(IQuantitySearch), "allDirectionsSequenceQuantitySearch", new ParameterOverride("sequenceToFind", "SEQUENCE"))).Returns(validSearch);

            AllDirectionsSequenceQuantitySearchFactory allDirectionsSequenceQuantitySearchFactory = new AllDirectionsSequenceQuantitySearchFactory(containerMock.Object);
            AllDirectionsSequenceQuantitySearch        allDirectionsSequenceQuantitySearch        = (AllDirectionsSequenceQuantitySearch)allDirectionsSequenceQuantitySearchFactory.CreateInstance("SEQUENCE");

            Assert.AreEqual(allDirectionsSequenceQuantitySearch.SequenceToFind, "SEQUENCE");
        }
        public void ShouldReturnCorrectNumberOfSequencesWhenSearch()
        {
            {
                Mock <IDNA> dnaMock = new Mock <IDNA>();
                dnaMock.Setup(m => m.Components).Returns(new string[] { "NOTHING", "NOTHING", "NOTHING" });
                AllDirectionsSequenceQuantitySearch allDirectionsSequenceQuantitySearch = new AllDirectionsSequenceQuantitySearch("SEQUENCE");
                Assert.AreEqual(allDirectionsSequenceQuantitySearch.Search(dnaMock.Object), 0);
            }

            {
                Mock <IDNA> dnaMock = new Mock <IDNA>();
                dnaMock.Setup(m => m.Components).Returns(new string[] { "SEQUENCE", "NOTHING", "NOTHING" });
                AllDirectionsSequenceQuantitySearch allDirectionsSequenceQuantitySearch = new AllDirectionsSequenceQuantitySearch("SEQUENCE");
                Assert.AreEqual(allDirectionsSequenceQuantitySearch.Search(dnaMock.Object), 1);
            }

            {
                Mock <IDNA> dnaMock = new Mock <IDNA>();
                dnaMock.Setup(m => m.Components).Returns(new string[] { "SEQUENCE", "NOTHING", "SEQUENCE" });
                AllDirectionsSequenceQuantitySearch allDirectionsSequenceQuantitySearch = new AllDirectionsSequenceQuantitySearch("SEQUENCE");
                Assert.AreEqual(allDirectionsSequenceQuantitySearch.Search(dnaMock.Object), 2);
            }

            {
                Mock <IDNA> dnaMock = new Mock <IDNA>();
                dnaMock.Setup(m => m.Components).Returns(new string[] { "NOTHING", "SEQUENCE", "SEQUENCE" });
                AllDirectionsSequenceQuantitySearch allDirectionsSequenceQuantitySearch = new AllDirectionsSequenceQuantitySearch("SEQUENCE");
                Assert.AreEqual(allDirectionsSequenceQuantitySearch.Search(dnaMock.Object), 2);
            }

            {
                Mock <IDNA> dnaMock = new Mock <IDNA>();
                dnaMock.Setup(m => m.Components).Returns(new string[] { "SEQUENCE", "SEQUENCE", "SEQUENCE" });
                AllDirectionsSequenceQuantitySearch allDirectionsSequenceQuantitySearch = new AllDirectionsSequenceQuantitySearch("SEQUENCE");
                Assert.AreEqual(allDirectionsSequenceQuantitySearch.Search(dnaMock.Object), 3);
            }
        }