private void DoTestCancelMinutia() { using (Fake.CreateScope()) { // PREPARE: m_Monitor.Reset(); // Copy the minutae before the operation IEnumerable <MinutiaRecord> minutae = m_ViewModel.Minutae.ToArray(); // Record the input minutia type before the operation MinutiaType inputType = m_ViewModel.InputMinutiaType; // EXECUTE: m_IViewModel.EscapeAction(); // ASSERT: Assert.AreEqual(CAPTURE_NO_TEMPLATE, m_ViewModel.Capture); Assert.AreEqual(inputType, m_ViewModel.InputMinutiaType); Assert.AreEqual(m_ViewModel.Minutae.Count() > 0, m_IViewModel.IsSaveTemplatePermitted); // Assert that the user is prompted to add a minutia IEnumerable <UserActionRequiredEventArgs> userActionEvents = m_Monitor.GetEventResponses <UserActionRequiredEventArgs>("UserActionRequired"); Assert.AreEqual(1, userActionEvents.Count()); Assert.AreEqual(INPUT_MINUTIA_PROMPT, userActionEvents.ElementAt(0).PromptText); Assert.AreEqual(0, m_Monitor.GetEventResponses <PropertyChangedEventArgs>("PropertyChanged").Count()); // Assert previous minuae are unchanged (note Equals has been overriden) Assert.AreEqual(minutae.Count() - 1, m_ViewModel.Minutae.Count()); CollectionAssert.AreEqual( minutae.Take(minutae.Count() - 1).ToArray(), m_ViewModel.Minutae.ToArray()); // Assert IDispatcherHelper interaction AssertNoCallsToDispatcherHelper(); } }