public void ClearIllustrationPoints_Always_ReturnsAffectedCalculations()
        {
            // Setup
            var calculationWithIllustrationPoints = new TestStructuresCalculation
            {
                Output = new TestStructuresOutput(new TestGeneralResultFaultTreeIllustrationPoint())
            };

            var calculationWithOutput = new TestStructuresCalculation
            {
                Output = new TestStructuresOutput()
            };

            TestStructuresCalculation[] calculations =
            {
                new TestStructuresCalculation(),
                calculationWithOutput,
                calculationWithIllustrationPoints
            };

            var mocks         = new MockRepository();
            var inquiryHelper = mocks.StrictMock <IInquiryHelper>();

            var calculationWithIllustrationPointsObserver = mocks.StrictMock <IObserver>();

            calculationWithIllustrationPoints.Attach(calculationWithIllustrationPointsObserver);

            var calculationWithoutIllustrationPointsObserver = mocks.StrictMock <IObserver>();

            calculationWithOutput.Attach(calculationWithoutIllustrationPointsObserver);
            mocks.ReplayAll();

            var handler = new ClearIllustrationPointsOfStructureCalculationCollectionChangeHandler(inquiryHelper, calculations);

            // Call
            IEnumerable <IObservable> affectedObjects = handler.ClearIllustrationPoints();

            // Assert
            CollectionAssert.AreEqual(new[]
            {
                calculationWithIllustrationPoints
            }, affectedObjects);

            TestStructuresCalculation[] calculationsWithOutput =
            {
                calculationWithOutput,
                calculationWithIllustrationPoints
            };
            Assert.IsTrue(calculationsWithOutput.All(calc => calc.HasOutput));
            Assert.IsTrue(calculationsWithOutput.All(calc => !calc.Output.HasGeneralResult));

            mocks.VerifyAll();
        }
        public void Constructor_WithArguments_ExpectedValues()
        {
            // Setup
            var mocks         = new MockRepository();
            var inquiryHelper = mocks.Stub <IInquiryHelper>();

            mocks.ReplayAll();

            // Call
            var handler = new ClearIllustrationPointsOfStructureCalculationCollectionChangeHandler(
                inquiryHelper, Enumerable.Empty <TestStructuresCalculation>());

            // Assert
            Assert.IsInstanceOf <ClearIllustrationPointsOfCalculationCollectionChangeHandlerBase>(handler);
            mocks.VerifyAll();
        }
        public void InquireConfirmation_Always_ReturnsInquiry()
        {
            // Setup
            var  random = new Random(21);
            bool expectedConfirmation = random.NextBoolean();

            var mocks         = new MockRepository();
            var inquiryHelper = mocks.StrictMock <IInquiryHelper>();

            inquiryHelper.Expect(h => h.InquireContinuation("Weet u zeker dat u alle illustratiepunten wilt wissen?")).Return(expectedConfirmation);
            mocks.ReplayAll();

            var handler = new ClearIllustrationPointsOfStructureCalculationCollectionChangeHandler(
                inquiryHelper, Enumerable.Empty <TestStructuresCalculation>());

            // Call
            bool confirmation = handler.InquireConfirmation();

            // Assert
            Assert.AreEqual(expectedConfirmation, confirmation);
            mocks.VerifyAll();
        }