internal static void HandleCheckException_UsesAsserterFail(GenericFixer fixer, Fake <Asserter> asserter, TimeSpan timeout) { asserter.Setup( d => d.Fail(Arg.Any <Exception>(), Arg.Any <string>()), Behavior.None(Times.Once)); new ExceptionGuarder(fixer, Tools.Randomizer, asserter.Dummy, timeout) .CallAllMethods(new MethodThrowsSample(), null); asserter.VerifyAll(); }
public void Fix_ProjectDoesNotContainLangVersion_LangVersionIsAdded() { /* Arrange */ Project project = CreateFakeProjectFromXml(); GenericFixer sut = CreateLangVersionFixerSut(); /* Act */ sut.Fix(project); /* Assert */ Assert.NotNull( project .Xml.PropertyGroups.SingleOrDefault()? .Properties.SingleOrDefault(p => p.Name == "LangVersion" && p.Value == "latest")); }
public void Fix_ProjectContainsUnconditionalLangVersion_ProjectIsNotModified() { /* Arrange */ const string unconditionalPropertyGroup = @"<PropertyGroup><LangVersion>latest</LangVersion></PropertyGroup>"; Project project = CreateFakeProjectFromXml(unconditionalPropertyGroup); Debug.Assert(!project.IsDirty); GenericFixer sut = CreateLangVersionFixerSut(); /* Act */ sut.Fix(project); /* Assert */ Assert.IsFalse(project.IsDirty); }
public void Fix_ProjectContainsWrongLangVersion_LangVersionIsSet() { /* Arrange */ const string unconditionalPropertyGroup = @"<PropertyGroup><LangVersion>default</LangVersion></PropertyGroup>"; Project project = CreateFakeProjectFromXml(unconditionalPropertyGroup); GenericFixer sut = CreateLangVersionFixerSut(); /* Act */ sut.Fix(project); /* Assert */ Assert.NotNull( project .Xml.PropertyGroups.SingleOrDefault()? .Properties.SingleOrDefault(p => p.Name == "LangVersion" && p.Value == "latest")); }
public void Fix_ProjectContainsConditionalLangVersion_UnconditionalLangVersionIsAdded() { /* Arrange */ const string unconditionalPropertyGroup = @" <PropertyGroup Condition="" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ""> <LangVersion>default</LangVersion> </PropertyGroup>"; Project project = CreateFakeProjectFromXml(unconditionalPropertyGroup); GenericFixer sut = CreateLangVersionFixerSut(); /* Act */ sut.Fix(project); /* Assert */ Assert.NotNull( project .Xml.PropertyGroups.SingleOrDefault(g => g.Condition == string.Empty)? .Properties.SingleOrDefault(p => p.Name == "LangVersion" && p.Value == "latest")); }
public static IFixer SelectImplementation(Options options) { if (!string.IsNullOrWhiteSpace(options.LangVersion) && !string.IsNullOrWhiteSpace(options.TargetFrameworkVersion)) { GenericFixer langVersionFixer = CreateLangVersionFixer(options); GenericFixer targetFrameworkFixer = CreateTargetFrameworkFixer(options); return(new CompositeFixer(new[] { langVersionFixer, targetFrameworkFixer })); } if (!string.IsNullOrWhiteSpace(options.LangVersion)) { return(CreateLangVersionFixer(options)); } if (!string.IsNullOrWhiteSpace(options.TargetFrameworkVersion)) { return(CreateTargetFrameworkFixer(options)); } throw new InvalidOperationException("Either --lang-version or --target-framework option must be specified"); }