public void TestReadPublished() { var mockFileSystemService = new Mock <IFileSystemService>(); string mockPublished = "{\"Title\":\"GameTitle\",\"Achievements\":[" + "{\"ID\":123,\"MemAddr\":\"1=3\",\"Title\":\"Ach123\",\"Description\":\"Desc123\"," + "\"Points\":6,\"Modified\":1625805850,\"Created\":1625508213,\"BadgeName\":\"4321\",\"Flags\":3}," + "{\"ID\":234,\"MemAddr\":\"2=3\",\"Title\":\"Ach234\",\"Description\":\"Desc234\"," + "\"Points\":3,\"Modified\":1625805853,\"Created\":1625508215,\"BadgeName\":\"5555\",\"Flags\":5}" + "]}"; mockFileSystemService.Setup(f => f.OpenFile("C:\\Emulator\\RACache\\Data\\1234.json", OpenFileMode.Read)) .Returns(new MemoryStream(Encoding.UTF8.GetBytes(mockPublished))); var vmGame = new GameViewModelHarness(1234, "Title", mockFileSystemService.Object); vmGame.AssociateRACacheDirectory("C:\\Emulator\\RACache\\Data"); Assert.That(vmGame.Title, Is.EqualTo("GameTitle")); vmGame.PopulateEditorList(null); Assert.That(vmGame.Editors.Count(), Is.EqualTo(3)); Assert.That(vmGame.Editors.ElementAt(0).Title, Is.EqualTo("Script")); Assert.That(vmGame.Editors.ElementAt(1).Title, Is.EqualTo("Ach123")); Assert.That(vmGame.Editors.ElementAt(2).Title, Is.EqualTo("Ach234")); var ach123 = ((AchievementViewModel)vmGame.Editors.ElementAt(1)).Published.Asset as Achievement; Assert.That(ach123.Id, Is.EqualTo(123)); Assert.That(ach123.Title, Is.EqualTo("Ach123")); Assert.That(ach123.Description, Is.EqualTo("Desc123")); Assert.That(ach123.Category, Is.EqualTo(3)); Assert.That(ach123.Points, Is.EqualTo(6)); Assert.That(ach123.BadgeName, Is.EqualTo("4321")); Assert.That(ach123.CoreRequirements.Count(), Is.EqualTo(1)); Assert.That(ach123.CoreRequirements.First().Left.Value, Is.EqualTo(1)); Assert.That(ach123.CoreRequirements.First().Right.Value, Is.EqualTo(3)); Assert.That(ach123.Published, Is.EqualTo(new DateTime(2021, 07, 05, 18, 03, 33, DateTimeKind.Utc))); Assert.That(ach123.LastModified, Is.EqualTo(new DateTime(2021, 07, 09, 04, 44, 10, DateTimeKind.Utc))); var ach234 = ((AchievementViewModel)vmGame.Editors.ElementAt(2)).Published.Asset as Achievement; Assert.That(ach234.Id, Is.EqualTo(234)); Assert.That(ach234.Title, Is.EqualTo("Ach234")); Assert.That(ach234.Description, Is.EqualTo("Desc234")); Assert.That(ach234.Category, Is.EqualTo(5)); Assert.That(ach234.Points, Is.EqualTo(3)); Assert.That(ach234.BadgeName, Is.EqualTo("5555")); Assert.That(ach234.CoreRequirements.Count(), Is.EqualTo(1)); Assert.That(ach234.CoreRequirements.First().Left.Value, Is.EqualTo(2)); Assert.That(ach234.CoreRequirements.First().Right.Value, Is.EqualTo(3)); Assert.That(ach234.Published, Is.EqualTo(new DateTime(2021, 07, 05, 18, 03, 35, DateTimeKind.Utc))); Assert.That(ach234.LastModified, Is.EqualTo(new DateTime(2021, 07, 09, 04, 44, 13, DateTimeKind.Utc))); Assert.That(vmGame.GeneratedAchievementCount, Is.EqualTo(0)); Assert.That(vmGame.CoreAchievementCount, Is.EqualTo(1)); Assert.That(vmGame.CoreAchievementPoints, Is.EqualTo(6)); Assert.That(vmGame.UnofficialAchievementCount, Is.EqualTo(1)); Assert.That(vmGame.UnofficialAchievementPoints, Is.EqualTo(3)); Assert.That(vmGame.LocalAchievementCount, Is.EqualTo(0)); Assert.That(vmGame.LocalAchievementPoints, Is.EqualTo(0)); }
public void TestLoadNotesNonExistant() { var mockFileSystemService = new Mock <IFileSystemService>(); var vmGame = new GameViewModelHarness(1234, "Title", mockFileSystemService.Object); vmGame.AssociateRACacheDirectory("C:\\Emulator\\RACache\\Data"); Assert.That(vmGame.RACacheDirectory, Is.EqualTo("C:\\Emulator\\RACache\\Data")); Assert.That(vmGame.Notes, Is.Not.Null); Assert.That(vmGame.Notes.Count, Is.EqualTo(0)); }
public void TestLoadNotesEmpty() { var mockFileSystemService = new Mock <IFileSystemService>(); string mockNotes = "[]"; mockFileSystemService.Setup(f => f.OpenFile("C:\\Emulator\\RACache\\Data\\1234-Notes.json", OpenFileMode.Read)) .Returns(new MemoryStream(Encoding.UTF8.GetBytes(mockNotes))); var vmGame = new GameViewModelHarness(1234, "Title", mockFileSystemService.Object); vmGame.AssociateRACacheDirectory("C:\\Emulator\\RACache\\Data"); Assert.That(vmGame.RACacheDirectory, Is.EqualTo("C:\\Emulator\\RACache\\Data")); Assert.That(vmGame.Notes, Is.Not.Null); Assert.That(vmGame.Notes.Count, Is.EqualTo(0)); }
public void TestLoadNotesDeleted() { var mockFileSystemService = new Mock <IFileSystemService>(); string mockNotes = "[{\"User\":\"Joe\",\"Address\":\"0x000123\",\"Note\":\"Test1\"}," + "{\"User\":\"Joe\",\"Address\":\"0x000124\",\"Note\":\"\"}," + // deleted note is returned as empty string "{\"User\":\"Joe\",\"Address\":\"0x000125\",\"Note\":\"''\"}," + // ancient bug set empty notes to two single quotes "{\"User\":\"Joe\",\"Address\":\"0x0001AF\",\"Note\":\"Test4\"}]"; mockFileSystemService.Setup(f => f.OpenFile("C:\\Emulator\\RACache\\Data\\1234-Notes.json", OpenFileMode.Read)) .Returns(new MemoryStream(Encoding.UTF8.GetBytes(mockNotes))); var vmGame = new GameViewModelHarness(1234, "Title", mockFileSystemService.Object); vmGame.AssociateRACacheDirectory("C:\\Emulator\\RACache\\Data"); Assert.That(vmGame.RACacheDirectory, Is.EqualTo("C:\\Emulator\\RACache\\Data")); Assert.That(vmGame.Notes, Is.Not.Null); Assert.That(vmGame.Notes.Count, Is.EqualTo(2)); Assert.That(vmGame.Notes[0x123], Is.EqualTo("Test1")); Assert.That(vmGame.Notes[0x1AF], Is.EqualTo("Test4")); }