public void WhenIUseEditableScreenCompositeObjectViewModel()
        {
            var initialPhones  = new[] { 546, 432 };
            var compositeModel = new CompositeEditableModel("Here", initialPhones);

            _compositeScenarioDataStore.Model = compositeModel;
            var mockMessageService = new FakeMessageService();

            _compositeScenarioDataStore.MockMessageService = mockMessageService;

            var screenObjectViewModel = new TestEditableScreenCompositeObjectViewModel(mockMessageService, compositeModel);

            _compositeScenarioDataStore.SystemUnderTest = screenObjectViewModel;
            _commonScenarioDataStore.RootObject.ActivateItem(screenObjectViewModel);
        }
        public void WhenModelIsChangedAndChangesAreAppliedAndModelIsChangedAndChangesAreCancelled_ThenCorrectModelIsDisplayed()
        {
            var initialPhones      = new[] { 546, 432 };
            var compositeModel     = new CompositeEditableModel("Here", initialPhones);
            var stubMessageService = new FakeMessageService();

            var rootObject            = CreateRootObject();
            var screenObjectViewModel = new TestEditableScreenCompositeObjectViewModel(stubMessageService, compositeModel);

            rootObject.ActivateItem(screenObjectViewModel);
            compositeModel.AddPhone(647);
            screenObjectViewModel.ApplyCommand.Execute(null);
            compositeModel.AddPhone(555);
            screenObjectViewModel.CancelChangesCommand.Execute(null);

            var phones         = ((ICompositeEditableModel)compositeModel).Phones.ToArray();
            var expectedPhones = new[] { 546, 432, 647 };

            phones.Should().BeEquivalentTo(expectedPhones);
        }