示例#1
0
        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));
        }
示例#2
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));
        }
示例#3
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));
        }
示例#4
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"));
        }