[TestMethod]
        public void WhenModelChildIsChanged_PropertiesAreUpdated()
        {
            // Arrange.
            var screenMock = Mock.Create<IFieldSecurityManager>();

            var field = new FieldEditMock();

            var processMock = Mock.Create<ProcessEdit>();

            var steps = new List<IStepEdit>();

            var stepMock = Mock.Create<IStepEdit>();
            Mock.Arrange(() => stepMock.IsChild).Returns(true);
            steps.Add(stepMock);

            stepMock = Mock.Create<IStepEdit>();
            Mock.Arrange(() => stepMock.IsChild).Returns(true);
            steps.Add(stepMock);

            stepMock = Mock.Create<IStepEdit>();
            Mock.Arrange(() => stepMock.IsChild).Returns(true);
            steps.Add(stepMock);

            field.StepList.AddRange(steps);

            var vm = new ExpandableStepPropBag(processMock) { FieldSecurityManager = screenMock, Model = field };

            field.RaiseChildChanged();

            foreach (var mock in steps)
            {
                Mock.Assert(() => mock.UpdateProps(vm), Occurs.Once());
            }