Skip to content

Commit 8840642

Browse files
authored
[release/8.0-preview3] Remove resource and endpoint name validation (#2093)
* [release/8.0-preview3] Remove resource and endpoint name validation * Remove code rather than comment out
1 parent 62f941d commit 8840642

File tree

2 files changed

+2
-127
lines changed

2 files changed

+2
-127
lines changed

src/Aspire.Hosting/ApplicationModel/ModelName.cs

-36
Original file line numberDiff line numberDiff line change
@@ -17,41 +17,5 @@ internal static void ValidateName(string target, string name)
1717
{
1818
ArgumentNullException.ThrowIfNull(target);
1919
ArgumentNullException.ThrowIfNull(name);
20-
21-
if (name.Length < 1 || name.Length > 64)
22-
{
23-
throw new ArgumentException($"{target} name '{name}' is invalid. Name must be between 1 and 64 characters long.", nameof(name));
24-
}
25-
26-
var lastCharacterHyphen = false;
27-
for (var i = 0; i < name.Length; i++)
28-
{
29-
if (name[i] == '-')
30-
{
31-
if (lastCharacterHyphen)
32-
{
33-
throw new ArgumentException($"{target} name '{name}' is invalid. Name cannot contain consecutive hyphens.", nameof(name));
34-
}
35-
lastCharacterHyphen = true;
36-
}
37-
else if (!char.IsAsciiLetterOrDigit(name[i]))
38-
{
39-
throw new ArgumentException($"{target} name '{name}' is invalid. Name must contain only ASCII letters, digits, and hyphens.", nameof(name));
40-
}
41-
else
42-
{
43-
lastCharacterHyphen = false;
44-
}
45-
}
46-
47-
if (!char.IsAsciiLetter(name[0]))
48-
{
49-
throw new ArgumentException($"{target} name '{name}' is invalid. Name must start with an ASCII letter.", nameof(name));
50-
}
51-
52-
if (name[^1] == '-')
53-
{
54-
throw new ArgumentException($"{target} name '{name}' is invalid. Name cannot end with a hyphen.", nameof(name));
55-
}
5620
}
5721
}

tests/Aspire.Hosting.Tests/ModelNameTests.cs

+2-91
Original file line numberDiff line numberDiff line change
@@ -7,97 +7,6 @@ namespace Aspire.Hosting.Tests;
77

88
public class ModelNameTests
99
{
10-
[Fact]
11-
public void ValidateName_Null_Error()
12-
{
13-
// Arrange & Act
14-
var exception = Assert.Throws<ArgumentNullException>(() => ModelName.ValidateName(nameof(Resource), null!));
15-
16-
// Assert
17-
Assert.Equal("Value cannot be null. (Parameter 'name')", exception.Message);
18-
}
19-
20-
[Fact]
21-
public void ValidateName_Empty_Error()
22-
{
23-
// Arrange & Act
24-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), ""));
25-
26-
// Assert
27-
Assert.Equal($"Resource name '' is invalid. Name must be between 1 and 64 characters long. (Parameter 'name')", exception.Message);
28-
}
29-
30-
[Fact]
31-
public void ValidateName_LongString_Error()
32-
{
33-
// Arrange & Act
34-
var name = new string('a', 65);
35-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), name));
36-
37-
// Assert
38-
Assert.Equal($"Resource name '{name}' is invalid. Name must be between 1 and 64 characters long. (Parameter 'name')", exception.Message);
39-
}
40-
41-
[Fact]
42-
public void ValidateName_Whitespace_Error()
43-
{
44-
// Arrange & Act
45-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), " "));
46-
47-
// Assert
48-
Assert.Equal("Resource name ' ' is invalid. Name must contain only ASCII letters, digits, and hyphens. (Parameter 'name')", exception.Message);
49-
}
50-
51-
[Fact]
52-
public void ValidateName_Underscore_Error()
53-
{
54-
// Arrange & Act
55-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), "test_name"));
56-
57-
// Assert
58-
Assert.Equal("Resource name 'test_name' is invalid. Name must contain only ASCII letters, digits, and hyphens. (Parameter 'name')", exception.Message);
59-
}
60-
61-
[Fact]
62-
public void ValidateName_StartHyphen_Error()
63-
{
64-
// Arrange & Act
65-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), "-abc"));
66-
67-
// Assert
68-
Assert.Equal("Resource name '-abc' is invalid. Name must start with an ASCII letter. (Parameter 'name')", exception.Message);
69-
}
70-
71-
[Fact]
72-
public void ValidateName_ConsecutiveHyphens_Error()
73-
{
74-
// Arrange & Act
75-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), "test--name"));
76-
77-
// Assert
78-
Assert.Equal("Resource name 'test--name' is invalid. Name cannot contain consecutive hyphens. (Parameter 'name')", exception.Message);
79-
}
80-
81-
[Fact]
82-
public void ValidateName_StartNumber_Error()
83-
{
84-
// Arrange & Act
85-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), "1abc"));
86-
87-
// Assert
88-
Assert.Equal("Resource name '1abc' is invalid. Name must start with an ASCII letter. (Parameter 'name')", exception.Message);
89-
}
90-
91-
[Fact]
92-
public void ValidateName_EndHyphen_Error()
93-
{
94-
// Arrange & Act
95-
var exception = Assert.Throws<ArgumentException>(() => ModelName.ValidateName(nameof(Resource), "abc-"));
96-
97-
// Assert
98-
Assert.Equal("Resource name 'abc-' is invalid. Name cannot end with a hyphen. (Parameter 'name')", exception.Message);
99-
}
100-
10110
[Theory]
10211
[InlineData("a")]
10312
[InlineData("ab")]
@@ -106,6 +15,8 @@ public void ValidateName_EndHyphen_Error()
10615
[InlineData("abc-123")]
10716
[InlineData("a-b-c-1-2-3")]
10817
[InlineData("ABC")]
18+
[InlineData("a_b")]
19+
[InlineData("a.b")]
10920
public void ValidateName_ValidNames_Success(string name)
11021
{
11122
ModelName.ValidateName(nameof(Resource), name);

0 commit comments

Comments
 (0)