public async Task ValidateShouldSucceedWhenOptionalReferenceIsMissing() { // Arrange var project = new ProjectBuilder().Build(); var data = new PackageReferenceRuleData { Required = false, Name = "Package" }; var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.False(actual.IsError); }
public async Task ValidateShouldFailWhenRequiredReferenceIsMissing() { // Arrange var project = new ProjectBuilder().Build(); var data = new PackageReferenceRuleData { Required = true, Name = "Package" }; var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.True(actual.IsError); }
public async Task ValidateShouldSucceedWhenPackageHasCorrectVersion() { // Arrange var project = new ProjectBuilder() .WithItemGroup() .WithPackageReference("Package", "1.2.3") .Build(); var data = new PackageReferenceRuleData { Version = "^1.0.0", Name = "Package" }; var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.False(actual.IsError); }
public async Task ValidateShouldSucceedWhenOptionalPackageIsReferenced() { // Arrange var project = new ProjectBuilder() .WithItemGroup() .WithPackageReference("Package", "1.2.3") .Build(); var data = new PackageReferenceRuleData { Name = "Package", Required = false }; var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.False(actual.IsError); }
public async Task ValidateShouldFailWhenVersionIsInvalidSemanticVersion() { // Arrange var project = new ProjectBuilder() .WithItemGroup() .WithPackageReference("Package", "1.2.3") .Build(); var data = new PackageReferenceRuleData { Version = "^1.0", Name = "Package" }; var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.True(actual.IsError); }
public async Task ValidateShouldFailWhenForbiddenReferenceExists() { // Arrange var project = new ProjectBuilder() .WithItemGroup() .WithPackageReference("Package", "1.0") .Build(); var data = new PackageReferenceRuleData { Forbidden = true, Name = "Package" }; var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.True(actual.IsError); }
public async Task ValidateShouldSucceedWhenAssetValueNoneIsSpecifiedInConfig(AssetsProperty property) { // Arrange var projectBuilder = new ProjectBuilder() .WithItemGroup() .WithPackageReference("Package", "1.0"); var data = new PackageReferenceRuleData { Name = "Package" }; if (property == AssetsProperty.Include) { data.IncludeAssets = new[] { "none" } } ; else if (property == AssetsProperty.Exclude) { data.ExcludeAssets = new[] { "none" } } ; else if (property == AssetsProperty.Private) { data.PrivateAssets = new[] { "none" } } ; var project = projectBuilder.Build(); var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.False(actual.IsError); }
public async Task ValidateShouldFailWhenAssetsInProjectDoesNotContainAllValues(AssetsProperty property) { // Arrange var projectBuilder = new ProjectBuilder() .WithItemGroup(); var data = new PackageReferenceRuleData { Name = "Package" }; if (property == AssetsProperty.Include) { projectBuilder = projectBuilder.WithPackageReference("Package", "1.0", false, "build"); data.IncludeAssets = new[] { "compile", "build" }; } else if (property == AssetsProperty.Exclude) { projectBuilder = projectBuilder.WithPackageReference("Package", "1.0", false, null, "build"); data.ExcludeAssets = new[] { "compile", "build" }; } else if (property == AssetsProperty.Private) { projectBuilder = projectBuilder.WithPackageReference("Package", "1.0", false, null, null, "build"); data.PrivateAssets = new[] { "compile", "build" }; } var project = projectBuilder.Build(); var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.True(actual.IsError); }
public async Task ValidateShouldSucceedWhenSingleAssetMatches(AssetsProperty property) { // Arrange var projectBuilder = new ProjectBuilder() .WithItemGroup(); var data = new PackageReferenceRuleData { Name = "Package" }; if (property == AssetsProperty.Include) { projectBuilder = projectBuilder.WithPackageReference("Package", "1.0", false, "build"); data.IncludeAssets = new[] { "build" }; } else if (property == AssetsProperty.Exclude) { projectBuilder = projectBuilder.WithPackageReference("Package", "1.0", false, null, "build"); data.ExcludeAssets = new[] { "build" }; } else if (property == AssetsProperty.Private) { projectBuilder = projectBuilder.WithPackageReference("Package", "1.0", false, null, null, "build"); data.PrivateAssets = new[] { "build" }; } var project = projectBuilder.Build(); var sut = new PackageReferenceRule(data); // Act var actual = await sut.Validate(project); // Assert Assert.False(actual.IsError); }