public void ReportUnsynchronizableContent_SynchronizesIfSourceVersionsAreIdenticalButSyncVersionNewer() { // Arrange var router = new TestRouter(); var lastVersion = VersionStamp.Default.GetNewerVersion(); var lastDocument = TestDocumentSnapshot.Create("C:/path/old.cshtml", lastVersion); var document = TestDocumentSnapshot.Create("C:/path/file.cshtml", lastVersion); var cache = new TestDocumentVersionCache(new Dictionary <DocumentSnapshot, long>() { [document] = 1338, [lastDocument] = 1337, }); var csharpDocument = RazorCSharpDocument.Create("Anything", RazorCodeGenerationOptions.CreateDefault(), Enumerable.Empty <RazorDiagnostic>()); // Force the state to already be up-to-date document.State.HostDocument.GeneratedCodeContainer.SetOutput(csharpDocument, lastDocument); var backgroundGenerator = new BackgroundDocumentGenerator(Dispatcher, cache, router, LoggerFactory); var work = new[] { new KeyValuePair <string, DocumentSnapshot>(document.FilePath, document) }; // Act backgroundGenerator.ReportUnsynchronizableContent(work); // Assert var filePath = Assert.Single(router.SynchronizedDocuments); Assert.Equal(document.FilePath, filePath); }
public void ReportUnsynchronizableContent_DoesNothingForOlderDocuments() { // Arrange var router = new TestRouter(); var lastVersion = VersionStamp.Default.GetNewerVersion(); var lastDocument = TestDocumentSnapshot.Create("C:/path/old.cshtml", lastVersion); var oldDocument = TestDocumentSnapshot.Create("C:/path/file.cshtml", VersionStamp.Default); var cache = new TestDocumentVersionCache(new Dictionary <DocumentSnapshot, long>() { [oldDocument] = 1337, [lastDocument] = 1338, }); var csharpDocument = RazorCSharpDocument.Create("Anything", RazorCodeGenerationOptions.CreateDefault(), Enumerable.Empty <RazorDiagnostic>()); // Force the state to already be up-to-date oldDocument.State.HostDocument.GeneratedCodeContainer.SetOutput(lastDocument, csharpDocument, lastVersion, VersionStamp.Default); var backgroundGenerator = new BackgroundDocumentGenerator(Dispatcher, cache, Listeners, router, LoggerFactory); var work = new[] { new KeyValuePair <string, DocumentSnapshot>(oldDocument.FilePath, oldDocument) }; // Act backgroundGenerator.ReportUnsynchronizableContent(work); // Assert Assert.Empty(router.SynchronizedDocuments); }
public void ReportUnsynchronizableContent_DoesNothingForOldDocuments() { // Arrange var router = new TestRouter(); var cache = new TestDocumentVersionCache(new Dictionary <DocumentSnapshot, long>()); var backgroundGenerator = new BackgroundDocumentGenerator(Dispatcher, cache, router, LoggerFactory); var document = TestDocumentSnapshot.Create("C:/path/file.cshtml"); var work = new[] { new KeyValuePair <string, DocumentSnapshot>(document.FilePath, document) }; // Act backgroundGenerator.ReportUnsynchronizableContent(work); // Assert Assert.Empty(router.SynchronizedDocuments); }