コード例 #1
0
        public void FileIsCreated(
            [Frozen] FilePath path,
            [Frozen] MockFileSystemWatcher fileChanges,
            [Frozen] MockFileSystem fs)
        {
            var listingA = new ModListing("ModA.esp", true);
            var reader   = Substitute.For <ICreationClubRawListingsReader>();

            reader.Read(Arg.Any <Stream>()).Returns(listingA.AsEnumerable());
            var list = new CreationClubLiveListingsFileReader(
                fs,
                reader,
                new CreationClubListingsPathInjection(path))
                       .Get(out var state)
                       .AsObservableList();

            list.Items.Should().HaveCount(0);
            var scheduler = new TestScheduler();
            var stateTest = scheduler.Start(() => state);

            stateTest.Messages.Should().HaveCount(1);
            stateTest.Messages[0].Value.Kind.Should().Be(NotificationKind.OnNext);
            stateTest.Messages[0].Value.Value.Succeeded.Should().BeFalse();
            fs.File.WriteAllText(path, string.Empty);
            fileChanges.MarkCreated(path);
            list.Items.Should().HaveCount(1);
            list.Items.First().Should().Be(listingA);
            stateTest = scheduler.Start(() => state);
            stateTest.Messages[^ 1].Value.Kind.Should().Be(NotificationKind.OnNext);
コード例 #2
0
        public void FileExists(Stream stream)
        {
            var scheduler = new TestScheduler();
            var path      = "C:/SomePath";
            var listingA  = new ModListing("ModA.esp", true);
            var fs        = Substitute.For <IFileSystem>();

            fs.File.OpenRead(path).Returns(stream);
            var reader = Substitute.For <ICreationClubRawListingsReader>();

            reader.Read(Arg.Any <Stream>()).Returns(listingA.AsEnumerable());
            var list = new CreationClubLiveListingsFileReader(
                fs,
                reader,
                new CreationClubListingsPathInjection(path))
                       .Get(out var state)
                       .AsObservableList();

            list.Items.Should().HaveCount(1);
            list.Items.First().Should().Be(listingA);
            var stateTest = scheduler.Start(() => state);

            stateTest.Messages.Should().HaveCount(1);
            stateTest.Messages[0].Value.Kind.Should().Be(NotificationKind.OnNext);
            stateTest.Messages[0].Value.Value.Succeeded.Should().BeTrue();
        }