public void FormText_no_file_shows_application_name_with_no_database_loaded() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()); entityUnderTest.CurrentDatabasePath.Should().BeNullOrEmpty(); entityUnderTest.FormText.Should().Be("eDreams (No dream diary loaded)"); }
public void StatusBarMessage_with_two_different_days_and_three_dreams() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()); AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.StatusBarMessage.Should().Be("3 dreams in 2 days (1.50 dreams/day)"); }
public void StatusBarMessage_with_one_day_and_one_dream_appears_in_singular() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()); entityUnderTest.AddEntry(new DreamEntry(new DateTime(2019, 2, 22), "A", "B")); entityUnderTest.StatusBarMessage.Should().Be("1 dream in 1 day (1.00 dreams/day)"); }
public void FormText_with_file_shows_application_name_with_file_name() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Files\Another\dreams.xml" }; entityUnderTest.FormText.Should().Be("eDreams - dreams.xml"); }
public void CurrentDatabasePath_when_changed_added_to_recent_paths_settings() { var dreamSettings = Substitute.For <IDreamDiaryPaths>(); var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), dreamSettings) { CurrentDatabasePath = "HELLO.XML" }; dreamSettings.Received(1).AddPathToRecentlyOpenedPaths("HELLO.XML"); }
public void CurrentDatabasePath_when_changed_with_null_Ignored() { var dreamSettings = Substitute.For <IDreamDiaryPaths>(); var unused = new DreamDiaryViewModel(GetPersistenceService(), dreamSettings) { CurrentDatabasePath = null }; dreamSettings.DidNotReceive().AddPathToRecentlyOpenedPaths(Arg.Any <string>()); }
public void CloseCurrentDiary_sets_CurrentDatabasePath_to_empty() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; entityUnderTest.CurrentDatabasePath.Should().NotBeNullOrEmpty(); entityUnderTest.CloseCurrentDiary(); entityUnderTest.CurrentDatabasePath.Should().BeNullOrEmpty(); }
public void FilterSearchEntries_given_empty_list_returns_nothing() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.DreamDays.Should().HaveCount(2); entityUnderTest.SetFilteredEntriesFromSearch(new List <DreamEntry>()); entityUnderTest.DreamDays.Should().BeEmpty(); }
public void CloseCurrentDiary_removes_entries() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.DreamDays.Should().HaveCount(2); entityUnderTest.CloseCurrentDiary(); entityUnderTest.DreamDays.Should().BeEmpty(); }
public void LoadDiary_passes_filepath_to_service() { var mockService = GetPersistenceService(); var entityUnderTest = new DreamDiaryViewModel(mockService, Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Users\Test\MyDiary" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.LoadDiary(); mockService.Received().LoadDiary(@"C:\Users\Test\MyDiary"); }
public void Import_with_empty_diary_adds_0_out_of_0() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); var result = entityUnderTest.Import(new List <DreamEntry>()); result.EntriesInImportedDiary.Should().Be(0); result.EntriesImported.Should().Be(0); }
public void Import_with_empty_diary_leaves_it_untouched() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.DreamEntries.Should().HaveCount(3); entityUnderTest.Import(new List <DreamEntry>()); entityUnderTest.DreamEntries.Should().HaveCount(3); }
public void Persist_passes_filepath_and_entries() { var mockService = GetPersistenceService(); var entityUnderTest = new DreamDiaryViewModel(mockService, Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Users\Test\MyDiary" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.Persist(); mockService.Received().PersistEntries(Arg.Is <IEnumerable <DreamEntry> >(x => x.Count() == 3), @"C:\Users\Test\MyDiary"); }
public void LoadingSucceeded_fired_when_loading_service_has_Successful_status() { var mockService = GetPersistenceService(); var entityUnderTest = new DreamDiaryViewModel(mockService, Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Users\Test\MyDiary" }; AddThreeDreamEntriesTwoDays(entityUnderTest); var fired = false; entityUnderTest.LoadingSucceeded += (s, e) => fired = true; mockService.FinishedLoading += Raise.EventWith(mockService, new FinishedLoadingEventArgs(LoadingResult.Successful, new List <DreamEntry>())); fired.Should().BeTrue(); }
public void FilterSearchEntries_only_returns_those_days() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.DreamDays.Should().HaveCount(2); entityUnderTest.SetFilteredEntriesFromSearch(new List <DreamEntry> { new DreamEntry(new DateTime(2019, 2, 23), "A", "B") }); entityUnderTest.DreamDays.Should().HaveCount(1).And .ContainSingle(x => x.DreamEntries.Single().Text == "B"); }
public void PersistenceFailed_fired_when_persistence_service_has_failed_status() { var mockService = GetPersistenceService(); var entityUnderTest = new DreamDiaryViewModel(mockService, Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Users\Test\MyDiary" }; AddThreeDreamEntriesTwoDays(entityUnderTest); var fired = false; entityUnderTest.PersistenceFailed += (s, e) => fired = true; mockService.FinishedPersisting += Raise.EventWith(mockService, new FinishedPersistingEventArgs(PersistenceOperationResult.Error)); fired.Should().BeTrue(); }
public void Import_with_duplicate_entries_imports_1_out_of_2() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); var entries = new List <DreamEntry> { new DreamEntry(new DateTime(2019, 2, 3), "Friend", "Hello"), new DreamEntry(new DateTime(2019, 2, 23), "A", "B") }; var result = entityUnderTest.Import(entries); result.EntriesImported.Should().Be(1); result.EntriesInImportedDiary.Should().Be(2); }
public void Import_with_duplicate_entries_does_not_add_them() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()) { CurrentDatabasePath = @"C:\Hello" }; AddThreeDreamEntriesTwoDays(entityUnderTest); entityUnderTest.DreamEntries.Should().HaveCount(3); var entries = new List <DreamEntry> { new DreamEntry(new DateTime(2019, 2, 3), "Friend", "Hello"), new DreamEntry(new DateTime(2019, 2, 23), "A", "B") }; entityUnderTest.Import(entries); entityUnderTest.DreamEntries.Should().HaveCount(4); }
public void StatusBarMessage_with_no_entries() { var entityUnderTest = new DreamDiaryViewModel(GetPersistenceService(), Substitute.For <IDreamDiaryPaths>()); entityUnderTest.StatusBarMessage.Should().Be("No dreams"); }