public void EnsureItemTypeIsCorrect_CriticalException_IsNotCaught() { var projectItemMock = new Mock <ProjectItem>(); projectItemMock.Setup(x => x.Properties).Throws <AccessViolationException>(); Action act = () => CSharpVBBindingOperation.EnsureItemTypeIsCorrect(projectItemMock.Object); act.Should().ThrowExactly <AccessViolationException>(); }
public void EnsureItemTypeIsCorrect_NonCriticalException_IsCaughtAndWrapped() { var projectMock = new ProjectMock("myproject.vbproj"); var innerException = new ArgumentException("aaa bbb"); var projectItemMock = new Mock <ProjectItem>(); projectItemMock.Setup(x => x.ContainingProject).Returns(projectMock); projectItemMock.Setup(x => x.Properties).Throws(innerException); Action act = () => CSharpVBBindingOperation.EnsureItemTypeIsCorrect(projectItemMock.Object); act.Should().ThrowExactly <SonarLintException>() .Where(x => x.Message.Contains(projectMock.FilePath) && x.Message.Contains(innerException.Message)) .And.InnerException.Should().BeSameAs(innerException); }