public void CalculateTagHelpersFromDelta_NoopResult()
        {
            // Arrange
            var resolver     = new TestTagHelperResolver(EngineFactory, ErrorReporter, Workspace);
            var initialDelta = new TagHelperDeltaResult(Delta: false, ResultId: 1, Project1TagHelpers, Array.Empty <TagHelperDescriptor>());

            resolver.PublicProduceTagHelpersFromDelta(Project1FilePath, lastResultId: -1, initialDelta);
            var noopDelta = new TagHelperDeltaResult(Delta: true, initialDelta.ResultId, Array.Empty <TagHelperDescriptor>(), Array.Empty <TagHelperDescriptor>());

            // Act
            var tagHelpers = resolver.PublicProduceTagHelpersFromDelta(Project1FilePath, initialDelta.ResultId, noopDelta);

            // Assert
            Assert.Equal(Project1TagHelpers, tagHelpers);
        }
        public void CalculateTagHelpersFromDelta_ReplacedTagHelpers()
        {
            // Arrange
            var resolver     = new TestTagHelperResolver(EngineFactory, ErrorReporter, Workspace);
            var initialDelta = new TagHelperDeltaResult(Delta: false, ResultId: 1, Project1TagHelpers, Array.Empty <TagHelperDescriptor>());

            resolver.PublicProduceTagHelpersFromDelta(Project1FilePath, lastResultId: -1, initialDelta);
            var changedDelta = new TagHelperDeltaResult(Delta: true, initialDelta.ResultId + 1, new[] { TagHelper2_Project2 }, new[] { TagHelper2_Project1 });

            // Act
            var tagHelpers = resolver.PublicProduceTagHelpersFromDelta(Project1FilePath, initialDelta.ResultId, changedDelta);

            // Assert
            Assert.Equal(new[] { TagHelper1_Project1, TagHelper2_Project2 }, tagHelpers.OrderBy(th => th.Name));
        }
        public void CalculateTagHelpersFromDelta_DeltaFailedToApplyToKnownProject()
        {
            // Arrange
            var resolver     = new TestTagHelperResolver(EngineFactory, ErrorReporter, Workspace);
            var initialDelta = new TagHelperDeltaResult(Delta: false, ResultId: 1, Project1TagHelpers, Array.Empty <TagHelperDescriptor>());

            resolver.PublicProduceTagHelpersFromDelta(Project1FilePath, lastResultId: -1, initialDelta);
            var newTagHelperSet        = new[] { TagHelper1_Project1 };
            var failedDeltaApplication = new TagHelperDeltaResult(Delta: false, initialDelta.ResultId + 1, newTagHelperSet, Array.Empty <TagHelperDescriptor>());

            // Act
            var tagHelpers = resolver.PublicProduceTagHelpersFromDelta(Project1FilePath, initialDelta.ResultId, failedDeltaApplication);

            // Assert
            Assert.Equal(newTagHelperSet, tagHelpers);
        }