public void BuildStatProjectDeletionFilterTest()
        {
            //Arrange
            var filter1 = new Mock<IStatProjectDeletionFilter>();
            var filter2 = new Mock<IStatProjectDeletionFilter>();
            var filter3 = new Mock<IStatProjectDeletionFilter>();

            var filters = new List<IStatProjectDeletionFilter>() { filter1.Object, filter2.Object, filter3.Object };
            var filtersChainBuilder = new FiltersChainBuilder();

            //Act
            var filter = filtersChainBuilder.BuildStatProjectDeletionFilter(filters);

            //Assert
            Assert.AreEqual(filter1.Object, filter);
            filter1.Verify(m => m.Set(filter2.Object));
            filter2.Verify(m => m.Set(filter3.Object));
        }
        public void BuildSuccessfulProjectUploadingsFilterTest()
        {
            //Arrange
            var filter1 = new Mock<IReportFilter>();
            var filter2 = new Mock<IReportFilter>();
            var filter3 = new Mock<IReportFilter>();

            var filters = new List<IReportFilter>() { filter1.Object, filter2.Object, filter3.Object };
            var filtersChainBuilder = new FiltersChainBuilder();

            //Act
            var filter = filtersChainBuilder.BuildSuccessfulProjectUploadingsFilter(filters);

            //Assert
            Assert.AreEqual(filter1.Object, filter);
            filter1.Verify(m => m.Set(filter2.Object));
            filter2.Verify(m => m.Set(filter3.Object));
        }