Validate collisions in domain assignments (#15759)

* Validate collisions in domain assignments

* Update OpenApi.json
This commit is contained in:
Kenn Jacobsen
2024-02-26 15:52:02 +01:00
committed by GitHub
parent b320cf1b22
commit 4443f8b88a
11 changed files with 178 additions and 33 deletions

View File

@@ -101,7 +101,7 @@ public class DomainAndUrlsTests : UmbracoIntegrationTest
}
}
VerifyDomains(result.Result.ToArray());
VerifyDomains(result.Result.Domains.ToArray());
// re-get and verify again
var domains = await domainService.GetAssignedDomainsAsync(Root.Key, true);
@@ -135,7 +135,7 @@ public class DomainAndUrlsTests : UmbracoIntegrationTest
}
}
VerifyDomains(result.Result.ToArray());
VerifyDomains(result.Result.Domains.ToArray());
// re-get and verify again
var domains = await domainService.GetAssignedDomainsAsync(Root.Key, true);
@@ -157,14 +157,14 @@ public class DomainAndUrlsTests : UmbracoIntegrationTest
var result = await domainService.UpdateDomainsAsync(Root.Key, updateModel);
Assert.IsTrue(result.Success);
Assert.AreEqual(DomainOperationStatus.Success, result.Status);
Assert.AreEqual(3, result.Result.Count());
Assert.AreEqual(3, result.Result.Domains.Count());
updateModel.Domains = Enumerable.Empty<DomainModel>();
result = await domainService.UpdateDomainsAsync(Root.Key, updateModel);
Assert.IsTrue(result.Success);
Assert.AreEqual(DomainOperationStatus.Success, result.Status);
Assert.AreEqual(0, result.Result.Count());
Assert.AreEqual(0, result.Result.Domains.Count());
// re-get and verify again
var domains = await domainService.GetAssignedDomainsAsync(Root.Key, true);
@@ -186,16 +186,16 @@ public class DomainAndUrlsTests : UmbracoIntegrationTest
var result = await domainService.UpdateDomainsAsync(Root.Key, updateModel);
Assert.IsTrue(result.Success);
Assert.AreEqual(DomainOperationStatus.Success, result.Status);
Assert.AreEqual(3, result.Result.Count());
Assert.AreEqual(3, result.Result.Domains.Count());
updateModel.Domains = new[] { updateModel.Domains.First(), updateModel.Domains.Last() };
result = await domainService.UpdateDomainsAsync(Root.Key, updateModel);
Assert.IsTrue(result.Success);
Assert.AreEqual(DomainOperationStatus.Success, result.Status);
Assert.AreEqual(2, result.Result.Count());
Assert.AreEqual(Cultures.First(), result.Result.First().LanguageIsoCode);
Assert.AreEqual(Cultures.Last(), result.Result.Last().LanguageIsoCode);
Assert.AreEqual(2, result.Result.Domains.Count());
Assert.AreEqual(Cultures.First(), result.Result.Domains.First().LanguageIsoCode);
Assert.AreEqual(Cultures.Last(), result.Result.Domains.Last().LanguageIsoCode);
}
[Test]
@@ -275,10 +275,10 @@ public class DomainAndUrlsTests : UmbracoIntegrationTest
var result = await domainService.UpdateDomainsAsync(Root.Key, updateModel);
Assert.IsTrue(result.Success);
Assert.AreEqual(1, result.Result.Count());
Assert.AreEqual(1, result.Result.Domains.Count());
// default culture is represented as a wildcard domain
var domain = result.Result.First();
var domain = result.Result.Domains.First();
Assert.IsTrue(domain.IsWildcard);
Assert.AreEqual(culture, domain.LanguageIsoCode);
Assert.AreEqual("*" + Root.Id, domain.DomainName);
@@ -352,7 +352,15 @@ public class DomainAndUrlsTests : UmbracoIntegrationTest
result = await domainService.UpdateDomainsAsync(copy.Key, updateModel);
Assert.IsFalse(result.Success);
Assert.AreEqual(DomainOperationStatus.DuplicateDomainName, result.Status);
Assert.AreEqual(DomainOperationStatus.ConflictingDomainName, result.Status);
Assert.IsNotNull(result.Result.ConflictingDomains);
Assert.IsNotEmpty(result.Result.ConflictingDomains);
Assert.AreEqual(updateModel.Domains.Count(), result.Result.ConflictingDomains.Count());
foreach (var culture in Cultures)
{
Assert.IsNotNull(result.Result.ConflictingDomains.SingleOrDefault(c => c.RootContentId == Root.Id && c.DomainName == GetDomainUrlFromCultureCode(culture)));
}
}
private static string GetDomainUrlFromCultureCode(string culture) =>