public void ConstructorTest() { var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Constructor.Mocked, Behavior.Loose); stepEditMock.SampleFilterDefinition = "FilterDefinition"; var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); Assert.IsNotNull(vm.AvailableProcesses); Assert.IsNotNull(vm.SelectedProcessAvailableFields); Assert.IsNotNull(vm.AnswerProcessAvailableFields); Assert.AreEqual(vm.FilterDefinition, "FilterDefinition"); var privateAccessor = new PrivateAccessor(vm); Assert.IsTrue((bool)privateAccessor.GetField("_isLoading")); }
public void SetupFilters_LoadFiltersCollection_MethodTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.SampleFilterGuid).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); //Arrange var filter1 = Mock.Create<IFilter>(Behavior.Loose); Mock.Arrange(() => filter1.FilterGuid).Returns(Guid.Empty); var filter2 = Mock.Create<IFilter>(Behavior.Loose); var filterGuid = Guid.NewGuid(); Mock.Arrange(() => filter2.FilterGuid).Returns(filterGuid); var filterInfo2 = Mock.Create<ProcessFilterInfo>(Behavior.Loose); Mock.Arrange(() => filterInfo2.ToFilter()).Returns(filter2); var filter3 = Mock.Create<IFilter>(Behavior.Loose); Mock.Arrange(() => filter3.FilterGuid).Returns(Guid.Empty); var filterInfo3 = Mock.Create<ProcessFilterInfo>(Behavior.Loose); Mock.Arrange(() => filterInfo3.ToFilter()).Returns(filter3); Mock.Arrange(() => vm.Filters).Returns(new List<IFilter> {filter1}); var methodParameter = Mock.Create<PublishedProcessWithFiltersInfo>(Behavior.Loose); Mock.Arrange(() => methodParameter.Filters).Returns(new Collection<ProcessFilterInfo> { filterInfo2, filterInfo3 }); vm.Data.SampleFilterGuid = filterGuid; Mock.ArrangeSet(() => vm.SelectedFilter = Arg.IsAny<IFilter>()) .DoInstead<IFilter>(v => Mock.Arrange(() => vm.SelectedFilter).Returns(v)); //Assert current values Assert.IsNull(vmPrivateAccessor.GetField("_answerProcessFitlersInfo")); Assert.AreEqual(1, vm.Filters.Count); Assert.IsNull(vm.SelectedFilter); //Act: Call SetupFilters method vmPrivateAccessor.CallMethod("SetupFilters", methodParameter); //Assert new values Assert.AreEqual(methodParameter, vmPrivateAccessor.GetField("_answerProcessFitlersInfo")); Assert.AreEqual(2, vm.Filters.Count); Assert.AreEqual(filter2, vm.SelectedFilter); Assert.IsFalse((bool)vmPrivateAccessor.GetField("_isLoading")); }
public void RefreshCommandTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.SampleFilterDefinition).CallOriginal(); Mock.Arrange(() => stepEditMock.SampleFilterGuid).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); #region SelectedFilter is null //Act: Invoke RefreshCommand command vm.RefreshCommand.Execute(null); //Assert Assert.IsNull(vm.SelectedFilter); Assert.AreEqual(string.Empty, vm.FilterDefinition); #endregion SelectedFilter is null #region SelectedFilter.Definition is empty //Arrange var selectedFilter = Mock.Create<IFilter>(Behavior.Loose); Mock.Arrange(() => vm.SelectedFilter).Returns(selectedFilter); //Act: Invoke RefreshCommand command vm.RefreshCommand.Execute(null); //Assert Assert.IsNotNull(vm.SelectedFilter); Assert.AreEqual(string.Empty, vm.FilterDefinition); #endregion SelectedFilter.Definition is empty #region All conditions are passed //Arrange Mock.Arrange(() => selectedFilter.Definition).Returns("SelectedFilterDefinition"); //Act: Invoke RefreshCommand command vm.RefreshCommand.Execute(null); //Assert Assert.IsNotNull(vm.SelectedFilter); Assert.AreEqual("SelectedFilterDefinition", vm.FilterDefinition); #endregion All conditions are passed }
public void ClearFilterCommandTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.SampleFilterDefinition).CallOriginal(); Mock.Arrange(() => stepEditMock.SampleFilterGuid).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); //Act: Invoke ClearFilterCommand command vm.ClearFilterCommand.Execute(null); //Assert Assert.IsNull(vm.SelectedFilter); Assert.AreEqual(string.Empty, vm.FilterDefinition); Assert.AreEqual(string.Empty, vm.Data.SampleFilterDefinition); Assert.AreEqual(Guid.Empty, vm.Data.SampleFilterGuid); }
public void FilterDefinitionSetterTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.SampleFilterDefinition).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); Mock.Arrange(() => vm.GetProcessedFilter()).CallOriginal().OccursOnce(); Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "FilterDefinition").DoNothing().MustBeCalled(); //Act: Assign FilterDefinition property vm.FilterDefinition = "Def"; //Assert Assert.AreEqual("Def", vm.FilterDefinition); Assert.AreEqual("Def", vm.Data.SampleFilterDefinition); Mock.NonPublic.Assert(vm, "RaisePropertyChanged", "FilterDefinition"); }
public void SelectedFilterSetter_IsLoaded_Test() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.SampleFilterGuid).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); Mock.Arrange(() => vm.GetProcessedFilter()).CallOriginal().OccursOnce(); Mock.NonPublic.Arrange(vm, "UpdateUdps").DoNothing().OccursOnce(); var vmPrivateAccessor = new PrivateAccessor(vm); vmPrivateAccessor.SetField("_selectedFilter", Mock.Create<IFilter>(Behavior.Loose)); vmPrivateAccessor.SetField("_isLoading", false); var filterDescriptorMock = Mock.Create<IFilterDescriptor>(Behavior.Loose); Mock.Arrange(() => filterDescriptorMock.ToJSON()).Returns("FilterText"); vmPrivateAccessor.SetField("_processedFilter", filterDescriptorMock); //Mock filter var filterGuid = Guid.NewGuid(); var filterMock = Mock.Create<IFilter>(Behavior.Loose); Mock.Arrange(() => filterMock.FilterGuid).Returns(filterGuid); //Act: Assign SelectedFilter property vm.SelectedFilter = filterMock; //Assert Assert.IsNotNull(vm.SelectedFilter); Assert.AreEqual(filterMock.FilterGuid, vm.Data.SampleFilterGuid); Assert.AreEqual("FilterText", vm.FilterDefinition); Mock.NonPublic.Assert(vm, "UpdateUdps", Occurs.Once()); Mock.Assert(() => vm.GetProcessedFilter(), Occurs.Once()); }
public void SelectedChecklistFieldSetter_NewValueIsNotNull_Test() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.ChecklistFieldName).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "SelectedChecklistField").OccursOnce(); Mock.NonPublic.Arrange(vm, "LoadAnswerProcessInfo").OccursOnce(); //Mock field info object var fieldInfoMock = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => fieldInfoMock.SystemName).Returns("Checklist"); //Act: Assign SelectedChecklistField vm.SelectedChecklistField = fieldInfoMock; //Assert Assert.AreEqual(fieldInfoMock, vm.SelectedChecklistField); Assert.AreEqual(fieldInfoMock.SystemName, vm.Data.ChecklistFieldName); Mock.NonPublic.Assert(vm, "RaisePropertyChanged", Occurs.Once(), "SelectedChecklistField"); Mock.NonPublic.Assert(vm, "LoadAnswerProcessInfo", Occurs.Once()); }
public void SelectedChecklistFieldSetter_NewValueIsNull_Test() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.ChecklistFieldName).CallOriginal(); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); vmPrivateAccessor.SetField("_selectedChecklistField", Mock.Create<FieldInfo>(Behavior.Loose)); //Arrange Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "SelectedChecklistField").OccursOnce(); Mock.NonPublic.Arrange(vm, "LoadAnswerProcessInfo").OccursNever(); //Act: Assign SelectedChecklistField vm.SelectedChecklistField = null; //Assert Assert.IsNull(vm.SelectedChecklistField); Assert.AreEqual(string.Empty, vm.Data.ChecklistFieldName); Mock.NonPublic.Assert(vm, "RaisePropertyChanged", Occurs.Once(), "SelectedChecklistField"); Mock.NonPublic.Assert(vm, "LoadAnswerProcessInfo", Occurs.Never()); }
public void PropertiesTests() { var vm = new GageRROptionsStepViewModel(Mock.Create<GageRROptionsStepEdit>(), Mock.Create<StepInfo>(), Mock.Create<ProcessFieldViewModel>()); TestsHelper.TestPublicDeclaredPropertiesGetSet(vm, true); var vmPrivateAccessor = new PrivateAccessor(vm); Assert.IsNotNull(vm.SelectedProcessChecklistFields); Assert.IsNotNull(vm.AnswerProcessSampleFields); Assert.IsNotNull(vm.AnswerProcessTextFields); Assert.IsNotNull(vm.AnswerProcessNumericFields); Assert.IsNotNull(vm.Filters); var source = new List<ProcessField>(); ((CollectionViewSource)vmPrivateAccessor.GetField("_selectedProcessChecklistFields")).Source = source; ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessSampleFields")).Source = source; ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessTextFields")).Source = source; ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessNumericFields")).Source = source; ((IList<IFilter>)vmPrivateAccessor.GetField("_filters")).Add(Mock.Create<IFilter>(Behavior.Loose)); Assert.AreEqual(source, vm.SelectedProcessChecklistFields.Source); Assert.AreEqual(source, vm.AnswerProcessSampleFields.Source); Assert.AreEqual(source, vm.AnswerProcessTextFields.Source); Assert.AreEqual(source, vm.AnswerProcessNumericFields.Source); Assert.AreEqual(1, vm.Filters.Count); }
public void SelectedProcessSetter_NewValueIsNull_Test() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); Mock.Arrange(() => stepEditMock.ChecklistFieldName).CallOriginal(); stepEditMock.ChecklistFieldName = "Checklist"; Mock.Arrange(() => stepEditMock.SampleFieldName).CallOriginal(); stepEditMock.SampleFieldName = "Sample"; Mock.Arrange(() => stepEditMock.AppraiserFieldName).CallOriginal(); stepEditMock.AppraiserFieldName = "Appraiser"; Mock.Arrange(() => stepEditMock.TrialFieldName).CallOriginal(); stepEditMock.TrialFieldName = "Trial"; //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); vmPrivateAccessor.SetField("_selectedProcess", Mock.Create<PublishedProcessInfo>(Behavior.Loose)); //Mock field info object var fieldInfoMock = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => vm.SelectedProcessAvailableFields).Returns(new ObservableCollection<FieldInfo> { fieldInfoMock }); Mock.Arrange(() => vm.AnswerProcessAvailableFields).Returns(new ObservableCollection<FieldInfo> { fieldInfoMock }); Assert.IsNotNull(vm.Data); //Act: Assign SelectedProcess property vm.SelectedProcess = null; Assert.IsNull(vm.SelectedProcess); //Assert Assert.AreEqual(vm.SelectedProcessAvailableFields.Count, 0); Assert.AreEqual(vm.AnswerProcessAvailableFields.Count, 0); Assert.AreEqual(string.Empty, vm.Data.ChecklistFieldName); Assert.AreEqual(string.Empty, vm.Data.SampleFieldName); Assert.AreEqual(string.Empty, vm.Data.AppraiserFieldName); Assert.AreEqual(string.Empty, vm.Data.TrialFieldName); Assert.IsNull(vm.Data.GageRRSourceProcessId); Assert.AreEqual(string.Empty, vm.Data.GageRRSourceProcessSysName); Mock.NonPublic.Assert(vm, "SetupSelectedProcess", Occurs.Never()); Mock.NonPublic.Assert(vm, "RaisePropertyChanged", Occurs.Once(), "SelectedProcess"); }
public void OnChecklistInfoLoaded_SetDataProcessName_MethodTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); //Arrange var fieldInfoMock = Mock.Create<ChecklistFieldInfo>(Behavior.Loose); Mock.Arrange(() => fieldInfoMock.CrossRefProcessSystemName).Returns("AnswerProcessSysName"); var result = new DataPortalResult<ChecklistFieldInfo>(fieldInfoMock, null, null); var processInfoMock = Mock.Create<PublishedProcessInfo>(Behavior.Loose); Mock.Arrange(() => processInfoMock.SystemName).Returns("AnswerProcessSysName"); Mock.Arrange(() => vm.AvailableProcesses).Returns(new List<PublishedProcessInfo> { processInfoMock }); Mock.NonPublic.Arrange(vm, "SetupAnswerProcess", ArgExpr.IsAny<int>()).DoNothing().OccursOnce(); Mock.NonPublic.Arrange(vm, "LoadAnswerProcessFilters", ArgExpr.IsAny<int>()).DoNothing().OccursOnce(); //Act: Call OnChecklistInfoLoaded method vmPrivateAccessor.CallMethod("OnChecklistInfoLoaded", result); //Assert Assert.AreEqual("AnswerProcessSysName", vm.Data.GageRRDataProcessSysName); Mock.NonPublic.Assert(vm, "SetupAnswerProcess", ArgExpr.IsAny<int>()); Mock.NonPublic.Assert(vm, "LoadAnswerProcessFilters", ArgExpr.IsAny<int>()); }
public void OnAnswerProcessFieldsRetrieved_Filtering_MethodTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); //Arrange var fieldTypeInfo1 = Mock.Create<FieldTypeInfo>(Behavior.Loose); Mock.Arrange(() => fieldTypeInfo1.ColumnType).Returns(ColumnTypes.Sample); var field1 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field1.FieldType).Returns(fieldTypeInfo1); var fieldTypeInfo2 = Mock.Create<FieldTypeInfo>(Behavior.Loose); Mock.Arrange(() => fieldTypeInfo2.ColumnType).Returns(ColumnTypes.String); var field2 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field2.FieldType).Returns(fieldTypeInfo2); var fieldTypeInfo3 = Mock.Create<FieldTypeInfo>(Behavior.Loose); Mock.Arrange(() => fieldTypeInfo3.ColumnType).Returns(ColumnTypes.Integer); var field3 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field3.FieldType).Returns(fieldTypeInfo3); var result = new DataPortalResult<FieldList>(null, null, null); Mock.Arrange(() => result.Object).ReturnsCollection(new List<FieldInfo> { field1, field2, field3 }); //var viewMock = Mock.Create<ICollectionView>(); //Mock.Arrange(() => viewMock.Refresh()).IgnoreInstance().DoNothing().MustBeCalled(); //Act: Call OnAnswerProcessFieldsRetrieved method vmPrivateAccessor.CallMethod("OnAnswerProcessFieldsRetrieved", result); //Assert Assert.IsNotNull(vm.AnswerProcessAvailableFields); Assert.AreEqual(3, vm.AnswerProcessAvailableFields.Count); var view = vm.AnswerProcessSampleFields.View; Assert.AreEqual(1, view.CountItems()); view.MoveCurrentToFirst(); Assert.AreEqual(ColumnTypes.Sample, ((FieldInfo)view.CurrentItem).FieldType.ColumnType); view = vm.AnswerProcessTextFields.View; Assert.AreEqual(1, view.CountItems()); view.MoveCurrentToFirst(); Assert.AreEqual(ColumnTypes.String, ((FieldInfo)view.CurrentItem).FieldType.ColumnType); view = vm.AnswerProcessNumericFields.View; Assert.AreEqual(1, view.CountItems()); view.MoveCurrentToFirst(); Assert.AreEqual(ColumnTypes.Integer, ((FieldInfo)view.CurrentItem).FieldType.ColumnType); //Mock.Assert(() => viewMock.Refresh(), Occurs.Exactly(2)); }
public void TestFieldDefaultValues() { var stepEditMock = Mock.Create<GageRROptionsStepEdit>(); var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var privateAccessor = new PrivateAccessor(vm); Assert.IsNull(privateAccessor.GetField("_selectedProcess")); Assert.IsNull(privateAccessor.GetField("_selectedChecklistField")); Assert.IsNotNull(privateAccessor.GetField("_selectedProcessChecklistFields")); Assert.IsNotNull(privateAccessor.GetField("_answerProcessSampleFields")); Assert.IsNotNull(privateAccessor.GetField("_answerProcessTextFields")); Assert.IsNotNull(privateAccessor.GetField("_answerProcessNumericFields")); Assert.IsNull(privateAccessor.GetField("_answerProcessFitlersInfo")); Assert.IsNotNull(privateAccessor.GetField("_filters")); Assert.IsNull(privateAccessor.GetField("_selectedFilter")); Assert.AreEqual(string.Empty, privateAccessor.GetField("_filterDefinition")); Assert.IsNotNull(privateAccessor.GetField("_udpList")); Assert.IsNull(privateAccessor.GetField("_processedFilter")); Assert.IsTrue((bool)privateAccessor.GetField("_isLoading")); }
public void OnAnswerProcessFieldsRetrieved_FieldValidationFailed_MethodTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); //Arrange var field1 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field1.ColumnType).Returns(ColumnTypes.SPCChart); var field2 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field2.ColumnType).Returns(ColumnTypes.Reference); var result = new DataPortalResult<FieldList>(null, null, null); Mock.Arrange(() => result.Object).ReturnsCollection(new List<FieldInfo> { field1, field2 }); //var viewMock = Mock.Create<ICollectionView>(); //Mock.Arrange(() => viewMock.Refresh()).IgnoreInstance().DoNothing().MustBeCalled(); //Act: Call OnAnswerProcessFieldsRetrieved method vmPrivateAccessor.CallMethod("OnAnswerProcessFieldsRetrieved", result); //Assert Assert.IsNotNull(vm.AnswerProcessAvailableFields); Assert.AreEqual(0, vm.AnswerProcessAvailableFields.Count); Assert.AreEqual( vm.AnswerProcessAvailableFields, ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessSampleFields")).Source); Assert.AreEqual( vm.AnswerProcessAvailableFields, ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessTextFields")).Source); Assert.AreEqual( vm.AnswerProcessAvailableFields, ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessNumericFields")).Source); //Mock.Assert(() => viewMock.Refresh(), Occurs.Once()); }
public void OnFieldListLoaded_Filtering_MethodTest() { //Mock step edit var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal); //Create view model var vm = new GageRROptionsStepViewModel(stepEditMock, null, null); var vmPrivateAccessor = new PrivateAccessor(vm); //Arrange var fieldTypeInfo1 = Mock.Create<FieldTypeInfo>(Behavior.Loose); Mock.Arrange(() => fieldTypeInfo1.ColumnType).Returns(ColumnTypes.Numeric); var field1 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field1.FieldType).Returns(fieldTypeInfo1); var fieldTypeInfo2 = Mock.Create<FieldTypeInfo>(Behavior.Loose); Mock.Arrange(() => fieldTypeInfo2.ColumnType).Returns(ColumnTypes.Checklist); var field2 = Mock.Create<FieldInfo>(Behavior.Loose); Mock.Arrange(() => field2.FieldType).Returns(fieldTypeInfo2); var result = new DataPortalResult<FieldList>(null, null, null); Mock.Arrange(() => result.Object).ReturnsCollection(new List<FieldInfo> { field1, field2 }); //var viewMock = Mock.Create<ICollectionView>(); //Mock.Arrange(() => viewMock.Refresh()).IgnoreInstance().DoNothing().MustBeCalled(); //Act: Call OnFieldListLoaded method //SelectedChecklistField remains unset vmPrivateAccessor.CallMethod("OnFieldListLoaded", result); //Assert Assert.IsNotNull(vm.SelectedProcessAvailableFields); Assert.AreEqual(2, vm.SelectedProcessAvailableFields.Count); Assert.AreEqual( vm.SelectedProcessAvailableFields, ((CollectionViewSource)vmPrivateAccessor.GetField("_selectedProcessChecklistFields")).Source); var view = vm.SelectedProcessChecklistFields.View; Assert.AreEqual(1, view.CountItems()); view.MoveCurrentToFirst(); Assert.AreEqual(ColumnTypes.Checklist, ((FieldInfo)view.CurrentItem).FieldType.ColumnType); Assert.IsNull(vm.SelectedChecklistField); //Arrange Mock.Arrange(() => field2.SystemName).Returns("ChecklistFieldSystemName"); vm.Data.ChecklistFieldName = "ChecklistFieldSystemName"; //Act: Call OnFieldListLoaded method //SelectedChecklistField gets the value vmPrivateAccessor.CallMethod("OnFieldListLoaded", result); //Assert Assert.IsNotNull(vm.SelectedChecklistField); Assert.AreEqual(field2, vm.SelectedChecklistField); //Mock.Assert(() => viewMock.Refresh(), Occurs.Exactly(2)); }