public void DescriptorResolver_UnderstandsUnexpectedExceptions_DoesNotThrow() { // Arrange var expectedErrorMessage = "Encountered an unexpected error when attempting to resolve tag helper " + "directive '@addtaghelper' with value 'A custom lookup text'. Error: A " + "custom exception"; var documentLocation = new SourceLocation(1, 2, 3); var directiveType = TagHelperDirectiveType.AddTagHelper; var errorSink = new ParserErrorSink(); var expectedError = new Exception("A custom exception"); var tagHelperDescriptorResolver = new ThrowingTagHelperDescriptorResolver(expectedError); var resolutionContext = new TagHelperDescriptorResolutionContext( new[] { new TagHelperDirectiveDescriptor("A custom lookup text", documentLocation, directiveType) }, errorSink); // Act tagHelperDescriptorResolver.Resolve(resolutionContext); // Assert var error = Assert.Single(errorSink.Errors); Assert.Equal(1, error.Length); Assert.Equal(documentLocation, error.Location); Assert.Equal(expectedErrorMessage, error.Message); }
public void DescriptorResolver_UnderstandsUnexpectedExceptions_DoesNotThrow() { // Arrange var expectedErrorMessage = "Encountered an unexpected error when attempting to resolve tag helper " + "directive '@addTagHelper' with value 'A custom, lookup text'. Error: A " + "custom exception"; var documentLocation = new SourceLocation(1, 2, 3); var directiveType = TagHelperDirectiveType.AddTagHelper; var errorSink = new ErrorSink(); var expectedError = new Exception("A custom exception"); var tagHelperDescriptorResolver = new ThrowingTagHelperDescriptorResolver(expectedError); var resolutionContext = new TagHelperDescriptorResolutionContext( new[] { new TagHelperDirectiveDescriptor { DirectiveText = "A custom, lookup text", Location = documentLocation, DirectiveType = directiveType } }, errorSink); // Act tagHelperDescriptorResolver.Resolve(resolutionContext); // Assert var error = Assert.Single(errorSink.Errors); Assert.Equal(21, error.Length); Assert.Equal(documentLocation, error.Location); Assert.Equal(expectedErrorMessage, error.Message); }