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);
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(); }