Skip to content

Commit e64cd3b

Browse files
authored
Adding public API test coverage (#5152)
1 parent 5605efa commit e64cd3b

File tree

2 files changed

+202
-3
lines changed

2 files changed

+202
-3
lines changed

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public static IResourceBuilder<MilvusServerResource> AddMilvus(this IDistributed
4444
IResourceBuilder<ParameterResource> apiKey,
4545
int? grpcPort = null)
4646
{
47+
ArgumentNullException.ThrowIfNull(builder);
48+
ArgumentNullException.ThrowIfNull(name);
4749
ArgumentNullException.ThrowIfNull(apiKey, nameof(apiKey));
4850

4951
var tokenParameter = apiKey.Resource;
@@ -88,6 +90,9 @@ public static IResourceBuilder<MilvusServerResource> AddMilvus(this IDistributed
8890
/// <returns>A reference to the <see cref="IResourceBuilder{T}"/>.</returns>
8991
public static IResourceBuilder<MilvusDatabaseResource> AddDatabase(this IResourceBuilder<MilvusServerResource> builder, string name, string? databaseName = null)
9092
{
93+
ArgumentNullException.ThrowIfNull(builder);
94+
ArgumentNullException.ThrowIfNull(name);
95+
9196
// Use the resource name as the database name if it's not provided
9297
databaseName ??= name;
9398

@@ -118,6 +123,8 @@ public static IResourceBuilder<MilvusDatabaseResource> AddDatabase(this IResourc
118123
/// <returns>A reference to the <see cref="IResourceBuilder{T}"/>.</returns>
119124
public static IResourceBuilder<T> WithAttu<T>(this IResourceBuilder<T> builder, Action<IResourceBuilder<AttuResource>>? configureContainer = null, string? containerName = null) where T : MilvusServerResource
120125
{
126+
ArgumentNullException.ThrowIfNull(builder);
127+
121128
containerName ??= $"{builder.Resource.Name}-attu";
122129

123130
var attuContainer = new AttuResource(containerName);
@@ -141,7 +148,10 @@ public static IResourceBuilder<T> WithAttu<T>(this IResourceBuilder<T> builder,
141148
/// <param name="isReadOnly">A flag that indicates if this is a read-only volume.</param>
142149
/// <returns>The <see cref="IResourceBuilder{T}"/>.</returns>
143150
public static IResourceBuilder<MilvusServerResource> WithDataVolume(this IResourceBuilder<MilvusServerResource> builder, string? name = null, bool isReadOnly = false)
144-
=> builder.WithVolume(name ?? VolumeNameGenerator.CreateVolumeName(builder, "data"), "/var/lib/milvus", isReadOnly);
151+
{
152+
ArgumentNullException.ThrowIfNull(builder);
153+
return builder.WithVolume(name ?? VolumeNameGenerator.CreateVolumeName(builder, "data"), "/var/lib/milvus", isReadOnly);
154+
}
145155

146156
/// <summary>
147157
/// Adds a bind mount for the data folder to a Milvus container resource.
@@ -151,7 +161,11 @@ public static IResourceBuilder<MilvusServerResource> WithDataVolume(this IResour
151161
/// <param name="isReadOnly">A flag that indicates if this is a read-only mount.</param>
152162
/// <returns>The <see cref="IResourceBuilder{T}"/>.</returns>
153163
public static IResourceBuilder<MilvusServerResource> WithDataBindMount(this IResourceBuilder<MilvusServerResource> builder, string source, bool isReadOnly = false)
154-
=> builder.WithBindMount(source, "/var/lib/milvus", isReadOnly);
164+
{
165+
ArgumentNullException.ThrowIfNull(builder);
166+
ArgumentNullException.ThrowIfNull(source);
167+
return builder.WithBindMount(source, "/var/lib/milvus", isReadOnly);
168+
}
155169

156170
/// <summary>
157171
/// Adds a bind mount for the configuration of a Milvus container resource.
@@ -160,7 +174,11 @@ public static IResourceBuilder<MilvusServerResource> WithDataBindMount(this IRes
160174
/// <param name="configurationFilePath">The source directory on the host to mount into the container.</param>
161175
/// <returns>The <see cref="IResourceBuilder{T}"/>.</returns>
162176
public static IResourceBuilder<MilvusServerResource> WithConfigurationBindMount(this IResourceBuilder<MilvusServerResource> builder, string configurationFilePath)
163-
=> builder.WithBindMount(configurationFilePath, "/milvus/configs/milvus.yaml");
177+
{
178+
ArgumentNullException.ThrowIfNull(builder);
179+
ArgumentNullException.ThrowIfNull(configurationFilePath);
180+
return builder.WithBindMount(configurationFilePath, "/milvus/configs/milvus.yaml");
181+
}
164182

165183
private static void ConfigureAttuContainer(EnvironmentCallbackContext context, MilvusServerResource resource)
166184
{
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using Aspire.Hosting.ApplicationModel;
5+
using Xunit;
6+
7+
namespace Aspire.Hosting.Milvus.Tests;
8+
9+
public class MilvusPublicApiTests
10+
{
11+
[Fact]
12+
public void AddMilvusContainerShouldThrowWhenBuilderIsNull()
13+
{
14+
IDistributedApplicationBuilder builder = null!;
15+
var name = "Milvus";
16+
17+
IResourceBuilder<ParameterResource> apiKey = null!;
18+
var action = () => builder.AddMilvus(name, apiKey);
19+
20+
var exception = Assert.Throws<ArgumentNullException>(action);
21+
Assert.Equal(nameof(builder), exception.ParamName);
22+
}
23+
24+
[Fact]
25+
public void AddMilvusContainerShouldThrowWhenNameIsNull()
26+
{
27+
var builder = DistributedApplication.CreateBuilder([]);
28+
builder.Configuration["Parameters:ApiKey"] = "root:Milvus";
29+
var apiKey = builder.AddParameter("ApiKey");
30+
string name = null!;
31+
32+
var action = () => builder.AddMilvus(name, apiKey);
33+
34+
var exception = Assert.Throws<ArgumentNullException>(action);
35+
Assert.Equal(nameof(name), exception.ParamName);
36+
}
37+
38+
[Fact]
39+
public void AddMilvusContainerShouldThrowWhenApiKeyIsNull()
40+
{
41+
var builder = DistributedApplication.CreateBuilder([]);
42+
var name = "Milvus";
43+
44+
IResourceBuilder<ParameterResource> apiKey = null!;
45+
46+
var action = () => builder.AddMilvus(name, apiKey);
47+
48+
var exception = Assert.Throws<ArgumentNullException>(action);
49+
Assert.Equal(nameof(apiKey), exception.ParamName);
50+
}
51+
52+
[Fact]
53+
public void AddDatabaseShouldThrowWhenNameIsNull()
54+
{
55+
var builder = DistributedApplication.CreateBuilder([]);
56+
builder.Configuration["Parameters:ApiKey"] = "root:Milvus";
57+
var apiKey = builder.AddParameter("ApiKey");
58+
59+
var milvus = builder.AddMilvus("Milvus", apiKey);
60+
string name = null!;
61+
62+
var action = () => milvus.AddDatabase(name);
63+
64+
var exception = Assert.Throws<ArgumentNullException>(action);
65+
Assert.Equal(nameof(name), exception.ParamName);
66+
}
67+
68+
[Fact]
69+
public void AddDatabaseShouldThrowWhenSourceIsNull()
70+
{
71+
IResourceBuilder<MilvusServerResource> builder = null!;
72+
string name = "db";
73+
74+
var action = () => builder.AddDatabase(name);
75+
76+
var exception = Assert.Throws<ArgumentNullException>(action);
77+
Assert.Equal(nameof(builder), exception.ParamName);
78+
}
79+
80+
[Fact]
81+
public void WithAttuShouldThrowWhenBuilderIsNull()
82+
{
83+
IResourceBuilder<MilvusServerResource> builder = null!;
84+
85+
var action = () => builder.WithAttu();
86+
87+
var exception = Assert.Throws<ArgumentNullException>(action);
88+
Assert.Equal(nameof(builder), exception.ParamName);
89+
}
90+
91+
[Fact]
92+
public void WithDataVolumeShouldThrowWhenBuilderIsNull()
93+
{
94+
IResourceBuilder<MilvusServerResource> builder = null!;
95+
96+
var action = () => builder.WithDataVolume();
97+
98+
var exception = Assert.Throws<ArgumentNullException>(action);
99+
Assert.Equal(nameof(builder), exception.ParamName);
100+
}
101+
102+
[Fact]
103+
public void WithDataBindMountShouldThrowWhenBuilderIsNull()
104+
{
105+
IResourceBuilder<MilvusServerResource> builder = null!;
106+
const string source = "/milvus/data";
107+
108+
var action = () => builder.WithDataBindMount(source);
109+
110+
var exception = Assert.Throws<ArgumentNullException>(action);
111+
Assert.Equal(nameof(builder), exception.ParamName);
112+
}
113+
114+
[Fact]
115+
public void WithDataBindMountShouldThrowWhenSourceIsNull()
116+
{
117+
var builder = DistributedApplication.CreateBuilder([]);
118+
builder.Configuration["Parameters:ApiKey"] = "root:Milvus";
119+
var apiKey = builder.AddParameter("ApiKey");
120+
121+
var milvus = builder.AddMilvus("Milvus", apiKey);
122+
string source = null!;
123+
124+
var action = () => milvus.WithDataBindMount(source);
125+
126+
var exception = Assert.Throws<ArgumentNullException>(action);
127+
Assert.Equal(nameof(source), exception.ParamName);
128+
}
129+
130+
[Fact]
131+
public void WithConfigurationBindMountShouldThrowWhenBuilderIsNull()
132+
{
133+
IResourceBuilder<MilvusServerResource> builder = null!;
134+
135+
var action = () => builder.WithConfigurationBindMount("/milvus/configs/milvus.yaml");
136+
137+
var exception = Assert.Throws<ArgumentNullException>(action);
138+
Assert.Equal(nameof(builder), exception.ParamName);
139+
}
140+
141+
[Fact]
142+
public void WithConfigurationBindMountShouldThrowWhenConfigurationFilePathIsNull()
143+
{
144+
var builder = DistributedApplication.CreateBuilder([]);
145+
builder.Configuration["Parameters:ApiKey"] = "root:Milvus";
146+
var apiKey = builder.AddParameter("ApiKey");
147+
148+
var milvus = builder.AddMilvus("Milvus", apiKey);
149+
string configurationFilePath = null!;
150+
var action = () => milvus.WithConfigurationBindMount(configurationFilePath);
151+
152+
var exception = Assert.Throws<ArgumentNullException>(action);
153+
Assert.Equal(nameof(configurationFilePath), exception.ParamName);
154+
}
155+
156+
[Fact]
157+
public void CtorMilvusServerResourceShouldThrowWhenNameIsNull()
158+
{
159+
var builder = DistributedApplication.CreateBuilder([]);
160+
string name = null!;
161+
var apiKey = new ParameterResource("ApiKey", (pd) => "root:Milvus");
162+
163+
var action = () => new MilvusServerResource(name, apiKey);
164+
165+
var exception = Assert.Throws<ArgumentNullException>(action);
166+
Assert.Equal(nameof(name), exception.ParamName);
167+
}
168+
169+
[Fact]
170+
public void CtorMilvusServerResourceShouldThrowWhenApiKeyIsNull()
171+
{
172+
var name = "Milvus";
173+
ParameterResource apiKey = null!;
174+
175+
var action = () => new MilvusServerResource(name, apiKey);
176+
177+
var exception = Assert.Throws<ArgumentNullException>(action);
178+
Assert.Equal(nameof(apiKey), exception.ParamName);
179+
}
180+
}
181+

0 commit comments

Comments
 (0)