// TODO: Test move minutia #region Do Test Routines private void DoTestBeginTemplating() { using (Fake.CreateScope()) { // EXECUTE // TODO: IntegrityCheck on valid image? m_IViewModel.BeginTemplating(CAPTURE_NO_TEMPLATE); // ASSERT Assert.AreEqual(CAPTURE_NO_TEMPLATE, m_ViewModel.Capture); Assert.AreEqual(DEFAULT_MINUTIA_TYPE, m_ViewModel.InputMinutiaType); Assert.AreEqual(0, m_ViewModel.Minutae.Count); Assert.IsFalse(m_IViewModel.IsSaveTemplatePermitted); IEnumerable <UserActionRequiredEventArgs> userActionEvents = m_Monitor.GetEventResponses <UserActionRequiredEventArgs>("UserActionRequired"); Assert.AreEqual(1, userActionEvents.Count()); Assert.AreEqual(INPUT_MINUTIA_PROMPT, userActionEvents.ElementAt(0).PromptText); IEnumerable <PropertyChangedEventArgs> propertyChangedEvents = m_Monitor.GetEventResponses <PropertyChangedEventArgs>("PropertyChanged"); Assert.AreEqual(1, propertyChangedEvents.Count()); Assert.AreEqual("Capture", propertyChangedEvents.ElementAt(0).PropertyName); // Assert IDispatcherHelper interaction // Minutia are cleared upon starting templating with a new capture A.CallTo(() => m_DispatcherHelper.Invoke(A <Action> ._)).MustHaveHappened(Repeated.Exactly.Once); } }
private Guid DoTestBeginInitialise() { using (Fake.CreateScope()) { // PREPARE: // Indicate that the settings are valid A.CallTo(() => m_SettingsManager.ValidateCurrentSettings()).Returns(true); A.CallTo(() => m_SettingsManager.GetCurrentSetting(Setting.ApiKey)).Returns(""); A.CallTo(() => m_SettingsManager.GetCurrentSetting(Setting.RootUrl)).Returns(""); // Return a valid identifier for asynchronous connection operation Guid identifier = Guid.NewGuid(); A.CallTo(() => m_DataController.BeginInitialise(A <DataControllerConfig> ._)).Returns(identifier); // EXECUTE: // First start the initialisation ((IMainWindowViewModel)m_ViewModel).BeginInitialise(); // ASSERT: // Assert public state of ViewModel Assert.AreEqual(Activity.Transitioning, m_ViewModel.CurrentActivity); Assert.IsFalse(m_ViewModel.IsTemplating); Assert.IsNull(m_ViewModel.Exception); Assert.AreEqual(INITIALISING_PROMPT_TEXT, m_ViewModel.PromptText); // Assert IDataController interaction // TODO: Check DataControllerConfig value A.CallTo(() => m_DataController.BeginInitialise(A <DataControllerConfig> ._)) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => m_DataController.BeginGetCapture(A <ScannerType> ._)) .MustNotHaveHappened(); A.CallTo(() => m_DataController.AbortRequest(A <Guid> ._)) .MustNotHaveHappened(); A.CallTo(() => m_DataController.BeginSaveTemplate(A <long> ._, A <byte[]> ._)) .MustNotHaveHappened(); // Assert ITemplatingViewModel interaction A.CallTo(() => m_TemplatingViewModel.BeginInitialise()).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => m_TemplatingViewModel.BeginTemplating(A <CaptureInfo> ._)).MustNotHaveHappened(); A.CallTo(() => m_TemplatingViewModel.EscapeAction()).MustNotHaveHappened(); A.CallTo(() => m_TemplatingViewModel.FinaliseTemplate()).MustNotHaveHappened(); A.CallTo(() => m_TemplatingViewModel.QuitTemplating()).MustNotHaveHappened(); A.CallTo(m_TemplatingViewModel) .Where(x => x.Method.Name.Equals("set_InputMinutiaType")) .WhenArgumentsMatch(x => x.Get <MinutiaType>(0).Equals(DEFAULT_MINUTIA_TYPE)) .MustNotHaveHappened(); // Assert ISettingsValidator interaction AssertSettingsChecked(); // Assert that view model made no calls to other fake objects AssertNoCallsToSettingsViewModel(); AssertNoCallsToWindowService(); AssertNoCallsToDispatcherHelper(); // Return the identifier so that the operation can be completed later return(identifier); } }