Skip to content
This repository was archived by the owner on Jul 30, 2024. It is now read-only.

Commit e9aa82f

Browse files
committed
Merge branch 'master' into dev
2 parents d66ba1f + cd94ff8 commit e9aa82f

7 files changed

Lines changed: 31 additions & 62 deletions

File tree

src/NuGet.Services.Validation.Orchestrator/IMessageService.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ namespace NuGet.Services.Validation.Orchestrator
88
public interface IMessageService<T> where T : class, IEntity
99
{
1010
void SendPublishedMessage(T entity);
11-
void SendValidationFailedMessage(T entity);
12-
void SendSignedValidationFailedMessage(T entity);
11+
void SendValidationFailedMessage(T entity, PackageValidationSet validationSet);
1312
void SendValidationTakingTooLongMessage(T entity);
1413
}
1514
}

src/NuGet.Services.Validation.Orchestrator/MessageService.cs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,15 @@ public void SendPublishedMessage(Package package)
5555
_coreMessageService.SendPackageAddedNotice(package, galleryPackageUrl, packageSupportUrl, _emailConfiguration.EmailSettingsUrl);
5656
}
5757

58-
public void SendValidationFailedMessage(Package package)
58+
public void SendValidationFailedMessage(Package package, PackageValidationSet validationSet)
5959
{
6060
package = package ?? throw new ArgumentNullException(nameof(package));
61+
validationSet = validationSet ?? throw new ArgumentNullException(nameof(validationSet));
6162

6263
var galleryPackageUrl = GalleryPackageUrl(package);
6364
var packageSupportUrl = PackageSupportUrl(package);
6465

65-
_coreMessageService.SendPackageValidationFailedNotice(package, galleryPackageUrl, packageSupportUrl);
66-
}
67-
68-
public void SendSignedValidationFailedMessage(Package package)
69-
{
70-
package = package ?? throw new ArgumentNullException(nameof(package));
71-
72-
var galleryPackageUrl = GalleryPackageUrl(package);
73-
74-
_coreMessageService.SendSignedPackageNotAllowedNotice(package, galleryPackageUrl, _emailConfiguration.AnnouncementsUrl, _emailConfiguration.TwitterUrl);
66+
_coreMessageService.SendPackageValidationFailedNotice(package, validationSet, galleryPackageUrl, packageSupportUrl, _emailConfiguration.AnnouncementsUrl, _emailConfiguration.TwitterUrl);
7567
}
7668

7769
public void SendValidationTakingTooLongMessage(Package package)

src/NuGet.Services.Validation.Orchestrator/ValidationOutcomeProcessor.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,7 @@ public async Task ProcessValidationOutcomeAsync(PackageValidationSet validationS
7272
if (validatingEntity.Status == PackageStatus.Validating)
7373
{
7474
await _packageStateProcessor.SetStatusAsync(validatingEntity, validationSet, PackageStatus.FailedValidation);
75-
76-
var issuesExistAndAllPackageSigned = validationSet
77-
.PackageValidations
78-
.SelectMany(pv => pv.PackageValidationIssues)
79-
.Select(pvi => pvi.IssueCode == ValidationIssueCode.PackageIsSigned)
80-
.DefaultIfEmpty(false)
81-
.All(v => v);
82-
83-
if (issuesExistAndAllPackageSigned)
84-
{
85-
_messageService.SendSignedValidationFailedMessage(validatingEntity.EntityRecord);
86-
}
87-
else
88-
{
89-
_messageService.SendValidationFailedMessage(validatingEntity.EntityRecord);
90-
}
75+
_messageService.SendValidationFailedMessage(validatingEntity.EntityRecord, validationSet);
9176
}
9277
else
9378
{

src/Validation.Common.Job/Validation.Common.Job.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
<Version>2.26.0-master-33404</Version>
109109
</PackageReference>
110110
<PackageReference Include="NuGetGallery.Core">
111-
<Version>4.4.4-dev-33655</Version>
111+
<Version>4.4.5-dev-34153</Version>
112112
</PackageReference>
113113
<PackageReference Include="Serilog">
114114
<Version>2.5.0</Version>

src/Validation.Common.Job/Validation.Common.Job.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<dependency id="NuGet.Services.Sql" version="2.26.0-master-33196" />
2222
<dependency id="NuGet.Services.Storage" version="2.25.0" />
2323
<dependency id="NuGet.Services.Validation" version="2.26.0-master-33404" />
24-
<dependency id="NuGetGallery.Core" version="4.4.4-dev-33655" />
24+
<dependency id="NuGetGallery.Core" version="4.4.5-dev-34153" />
2525
<dependency id="Serilog" version="2.5.0" />
2626
<dependency id="System.Net.Http" version="4.3.3" />
2727
</dependencies>

tests/NuGet.Services.Validation.Orchestrator.Tests/MessageServiceFacts.cs

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ public void ConstructorThrowsWhenEmailConfigurationValueIsNull()
5252
private const string ValidSettingsUrl = "https://example.com";
5353
public static IEnumerable<object[]> EmailConfigurationPropertyValuesCombinations =>
5454
(from invalidValue in InvalidValuesToTest
55-
select new []
56-
{
55+
select new[]
56+
{
5757
new object[] { invalidValue, ValidValue, ValidSettingsUrl, "PackageUrlTemplate" },
5858
new object[] { ValidValue, invalidValue, ValidSettingsUrl, "PackageSupportTemplate" },
5959
new object[] { ValidValue, ValidValue, invalidValue, "EmailSettingsUrl" }
@@ -132,30 +132,40 @@ public void SendPackageValidationFailedMessageCallsCoreMessageService()
132132

133133
var service = new PackageMessageService(CoreMessageServiceMock.Object, EmailConfigurationAccessorMock.Object, LoggerMock.Object);
134134

135-
var ex = Record.Exception(() => service.SendValidationFailedMessage(Package));
135+
var ex = Record.Exception(() => service.SendValidationFailedMessage(Package, ValidationSet));
136136
Assert.Null(ex);
137137

138138
CoreMessageServiceMock
139-
.Verify(cms => cms.SendPackageValidationFailedNotice(Package, expectedPackageUrl, expectedSupportUrl), Times.Once());
139+
.Verify(cms => cms.SendPackageValidationFailedNotice(Package, ValidationSet, expectedPackageUrl, expectedSupportUrl, EmailConfiguration.AnnouncementsUrl, EmailConfiguration.TwitterUrl), Times.Once());
140140
CoreMessageServiceMock
141-
.Verify(cms => cms.SendPackageValidationFailedNotice(It.IsAny<Package>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once());
141+
.Verify(cms => cms.SendPackageValidationFailedNotice(It.IsAny<Package>(), It.IsAny<PackageValidationSet>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once());
142142
}
143143

144144
[Fact]
145145
public void SendPackageValidationFailedMessageThrowsWhenPackageIsNull()
146146
{
147147
var service = new PackageMessageService(CoreMessageServiceMock.Object, EmailConfigurationAccessorMock.Object, LoggerMock.Object);
148-
var ex = Assert.Throws<ArgumentNullException>(() => service.SendValidationFailedMessage(null));
148+
var ex = Assert.Throws<ArgumentNullException>(() => service.SendValidationFailedMessage(null, new PackageValidationSet()));
149149
Assert.Equal("package", ex.ParamName);
150150
}
151151

152+
[Fact]
153+
public void SendPackageValidationFailedMessageThrowsWhenValidationSetIsNull()
154+
{
155+
var service = new PackageMessageService(CoreMessageServiceMock.Object, EmailConfigurationAccessorMock.Object, LoggerMock.Object);
156+
var ex = Assert.Throws<ArgumentNullException>(() => service.SendValidationFailedMessage(new Package(), null));
157+
Assert.Equal("validationSet", ex.ParamName);
158+
}
159+
152160
public MessageServiceFacts()
153161
{
154162
EmailConfiguration = new EmailConfiguration
155163
{
156164
PackageUrlTemplate = "https://example.com/package/{0}/{1}",
157165
PackageSupportTemplate = "https://example.com/packageSupport/{0}/{1}",
158-
EmailSettingsUrl = ValidSettingsUrl
166+
EmailSettingsUrl = ValidSettingsUrl,
167+
AnnouncementsUrl = "https://announcements.com",
168+
TwitterUrl = "https://twitter.com/nuget"
159169
};
160170

161171
EmailConfigurationAccessorMock
@@ -169,12 +179,15 @@ public MessageServiceFacts()
169179
NormalizedVersion = "1.2.3"
170180
};
171181
Package.PackageRegistration.Packages = new List<Package> { Package };
182+
183+
ValidationSet = new PackageValidationSet();
172184
}
173185

174186
private Mock<ICoreMessageService> CoreMessageServiceMock { get; set; } = new Mock<ICoreMessageService>();
175187
private Mock<IOptionsSnapshot<EmailConfiguration>> EmailConfigurationAccessorMock { get; set; } = new Mock<IOptionsSnapshot<EmailConfiguration>>();
176188
private Mock<ILogger<PackageMessageService>> LoggerMock { get; set; } = new Mock<ILogger<PackageMessageService>>();
177189
private Package Package { get; set; }
190+
private PackageValidationSet ValidationSet { get; set; }
178191
private EmailConfiguration EmailConfiguration { get; set; }
179192
}
180193
}

tests/NuGet.Services.Validation.Orchestrator.Tests/ValidationOutcomeProcessorFacts.cs

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -40,26 +40,9 @@ public async Task ProcessesFailedValidationAccordingToFailureBehavior(Validation
4040
[InlineData(new[] { ValidationIssueCode.PackageIsSigned, ValidationIssueCode.Unknown })]
4141
[InlineData(new[] { ValidationIssueCode.Unknown, ValidationIssueCode.Unknown })]
4242
[InlineData(new[] { ValidationIssueCode.Unknown, ValidationIssueCode.PackageIsSigned })]
43-
public async Task SendsFailureEmailOnFailedValidation(ValidationIssueCode[] issueCodes)
44-
{
45-
AddValidation("validation1", ValidationStatus.Failed);
46-
ValidationSet.PackageValidations.First().PackageValidationIssues = issueCodes
47-
.Select(ic => new PackageValidationIssue { IssueCode = ic })
48-
.ToList();
49-
50-
var processor = CreateProcessor();
51-
await processor.ProcessValidationOutcomeAsync(ValidationSet, PackageValidatingEntity, ProcessorStats);
52-
53-
MessageServiceMock
54-
.Verify(ms => ms.SendValidationFailedMessage(Package), Times.Once());
55-
MessageServiceMock
56-
.Verify(ms => ms.SendValidationFailedMessage(It.IsAny<Package>()), Times.Once());
57-
}
58-
59-
[Theory]
6043
[InlineData(new[] { ValidationIssueCode.PackageIsSigned })]
6144
[InlineData(new[] { ValidationIssueCode.PackageIsSigned, ValidationIssueCode.PackageIsSigned })]
62-
public async Task SendsPackageSignedFailureEmail(ValidationIssueCode[] issueCodes)
45+
public async Task SendsFailureEmailOnFailedValidation(ValidationIssueCode[] issueCodes)
6346
{
6447
AddValidation("validation1", ValidationStatus.Failed);
6548
ValidationSet.PackageValidations.First().PackageValidationIssues = issueCodes
@@ -70,9 +53,9 @@ public async Task SendsPackageSignedFailureEmail(ValidationIssueCode[] issueCode
7053
await processor.ProcessValidationOutcomeAsync(ValidationSet, PackageValidatingEntity, ProcessorStats);
7154

7255
MessageServiceMock
73-
.Verify(ms => ms.SendSignedValidationFailedMessage(Package), Times.Once());
56+
.Verify(ms => ms.SendValidationFailedMessage(Package, ValidationSet), Times.Once());
7457
MessageServiceMock
75-
.Verify(ms => ms.SendSignedValidationFailedMessage(It.IsAny<Package>()), Times.Once());
58+
.Verify(ms => ms.SendValidationFailedMessage(It.IsAny<Package>(), It.IsAny<PackageValidationSet>()), Times.Once());
7659
}
7760

7861
[Fact]
@@ -484,10 +467,7 @@ public async Task DoesNotTakeDownAvailablePackages()
484467
x => x.SetStatusAsync(It.IsAny<PackageValidatingEntity>(), It.IsAny<PackageValidationSet>(), It.IsAny<PackageStatus>()),
485468
Times.Never);
486469
MessageServiceMock.Verify(
487-
x => x.SendSignedValidationFailedMessage(It.IsAny<Package>()),
488-
Times.Never);
489-
MessageServiceMock.Verify(
490-
x => x.SendValidationFailedMessage(It.IsAny<Package>()),
470+
x => x.SendValidationFailedMessage(It.IsAny<Package>(), It.IsAny<PackageValidationSet>()),
491471
Times.Never);
492472
MessageServiceMock.Verify(
493473
x => x.SendPublishedMessage(It.IsAny<Package>()),

0 commit comments

Comments
 (0)