public void SetProperties_WithData_UpdateDataAndNotifyObservers()
        {
            // Setup
            var mocks           = new MockRepository();
            var projectObserver = mocks.StrictMock <IObserver>();

            projectObserver.Expect(o => o.UpdateObserver());
            var failureMechanism = mocks.StrictMock <ICalculatableFailureMechanism>();

            mocks.ReplayAll();

            var calculationGroup            = new CalculationGroup();
            var testCalculationGroupContext = new TestCalculationGroupContext(calculationGroup, new CalculationGroup(), failureMechanism);

            calculationGroup.Attach(projectObserver);

            // Call
            var properties = new CalculationGroupContextProperties(testCalculationGroupContext);

            // Assert
            const string name = "cool new name!";

            properties.Name = name;
            Assert.AreEqual(name, calculationGroup.Name);
            mocks.VerifyAll();
        }
        public void Constructor_ValidData_PropertiesHaveExpectedAttributeValues()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.StrictMock <ICalculatableFailureMechanism>();

            mocks.ReplayAll();

            // Call
            var properties = new CalculationGroupContextProperties(new TestCalculationGroupContext(new CalculationGroup(),
                                                                                                   new CalculationGroup(),
                                                                                                   failureMechanism));

            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(1, dynamicProperties.Count);

            PropertyDescriptor nameProperty = dynamicProperties[0];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty,
                                                                            "Algemeen",
                                                                            "Naam",
                                                                            "Naam van de map met berekeningen.");
        }
        public void GetProperties_WithData_ReturnTheSameValueAsData()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.StrictMock <ICalculatableFailureMechanism>();

            mocks.ReplayAll();

            var calculationGroup = new CalculationGroup();

            // Call
            var properties = new CalculationGroupContextProperties(new TestCalculationGroupContext(calculationGroup, new CalculationGroup(), failureMechanism));

            // Assert
            Assert.AreEqual(calculationGroup.Name, properties.Name);
            mocks.VerifyAll();
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.StrictMock <ICalculatableFailureMechanism>();

            mocks.ReplayAll();

            var calculationGroupContext = new TestCalculationGroupContext(new CalculationGroup(), new CalculationGroup(), failureMechanism);

            // Call
            var properties = new CalculationGroupContextProperties(calculationGroupContext);

            // Assert
            Assert.IsInstanceOf <ObjectProperties <ICalculationContext <CalculationGroup, ICalculatableFailureMechanism> > >(properties);
            Assert.AreEqual(calculationGroupContext, properties.Data);
            mocks.VerifyAll();
        }
        public void DynamicReadOnlyValidator_WithoutParentCalculationGroup_ReturnsTrue()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.StrictMock <ICalculatableFailureMechanism>();

            mocks.ReplayAll();

            var properties = new CalculationGroupContextProperties(new TestCalculationGroupContext(new CalculationGroup(),
                                                                                                   null,
                                                                                                   failureMechanism));

            // Call
            bool isReadOnly = properties.DynamicReadOnlyValidator(null);

            // Assert
            Assert.IsTrue(isReadOnly);
        }