| File: MongoDBPublicApiTests.cs | Web Access |
| Project: src\tests\Aspire.Hosting.MongoDB.Tests\Aspire.Hosting.MongoDB.Tests.csproj (Aspire.Hosting.MongoDB.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Utils; namespace Aspire.Hosting.MongoDB.Tests; public class MongoDBPublicApiTests(ITestOutputHelper testOutputHelper) { [Fact] public void AddMongoDBShouldThrowWhenBuilderIsNull() { IDistributedApplicationBuilder builder = null!; const string name = "MongoDB"; int? port = null; var action = () => builder.AddMongoDB(name, port); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void AddMongoDBShouldThrowWhenNameIsNullOrEmpty(bool isNull) { var builder = TestDistributedApplicationBuilder.Create(testOutputHelper); var name = isNull ? null! : string.Empty; int? port = null; var action = () => builder.AddMongoDB(name, port); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(name), exception.ParamName); } [Fact] public void AddMongoDBWithParametersShouldThrowWhenBuilderIsNull() { IDistributedApplicationBuilder builder = null!; const string name = "MongoDB"; IResourceBuilder<ParameterResource>? userName = null; IResourceBuilder<ParameterResource>? password = null; var action = () => builder.AddMongoDB(name, userName: userName, password: password); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void AddMongoDBWithParametersShouldThrowWhenNameIsNullOrEmpty(bool isNull) { var builder = TestDistributedApplicationBuilder.Create(testOutputHelper); var name = isNull ? null! : string.Empty; IResourceBuilder<ParameterResource>? userName = null; IResourceBuilder<ParameterResource>? password = null; var action = () => builder.AddMongoDB(name, userName: userName, password: password); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(name), exception.ParamName); } [Fact] public void AddDatabaseShouldThrowWhenBuilderIsNull() { IResourceBuilder<MongoDBServerResource> builder = null!; const string name = "db"; var action = () => builder.AddDatabase(name); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void AddDatabaseShouldThrowWhenNameIsNullOrEmpty(bool isNull) { var builder = TestDistributedApplicationBuilder.Create(testOutputHelper) .AddMongoDB("MongoDB"); var name = isNull ? null! : string.Empty; var action = () => builder.AddDatabase(name); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(name), exception.ParamName); } [Fact] public void WithMongoExpressShouldThrowWhenBuilderIsNull() { IResourceBuilder<MongoDBServerResource> builder = null!; var action = () => builder.WithMongoExpress(); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void WithHostPortShouldThrowWhenBuilderIsNull(bool isNull) { IResourceBuilder<MongoExpressContainerResource> builder = null!; int? port = isNull ? null : 27017; var action = () => builder.WithHostPort(port); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Fact] public void WithDataVolumeShouldThrowWhenBuilderIsNull() { IResourceBuilder<MongoDBServerResource> builder = null!; var action = () => builder.WithDataVolume(); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Fact] public void WithDataBindMountShouldThrowWhenBuilderIsNull() { IResourceBuilder<MongoDBServerResource> builder = null!; const string source = "/MongoDB/storage"; var action = () => builder.WithDataBindMount(source); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void WithDataBindMountShouldThrowWhenSourceIsNullOrEmpty(bool isNull) { var builder = TestDistributedApplicationBuilder.Create(testOutputHelper) .AddMongoDB("MongoDB"); var source = isNull ? null! : string.Empty; var action = () => builder.WithDataBindMount(source); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(source), exception.ParamName); } [Fact] public void WithInitBindMountShouldThrowWhenBuilderIsNull() { IResourceBuilder<MongoDBServerResource> builder = null!; #pragma warning disable CS0618 // Type or member is obsolete var action = () => builder.WithInitBindMount("init.js"); #pragma warning restore CS0618 // Type or member is obsolete var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void WithInitBindMountShouldThrowWhenSourceIsNullOrEmpty(bool isNull) { var builder = TestDistributedApplicationBuilder.Create(testOutputHelper) .AddMongoDB("MongoDB"); var source = isNull ? null! : string.Empty; #pragma warning disable CS0618 // Type or member is obsolete var action = () => builder.WithInitBindMount(source); #pragma warning restore CS0618 // Type or member is obsolete var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(source), exception.ParamName); } [Fact] public void WithInitFilesShouldThrowWhenBuilderIsNull() { IResourceBuilder<MongoDBServerResource> builder = null!; var action = () => builder.WithInitFiles("init.js"); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(builder), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void WithInitFilesShouldThrowWhenSourceIsNullOrEmpty(bool isNull) { var builder = TestDistributedApplicationBuilder.Create(testOutputHelper) .AddMongoDB("MongoDB"); var source = isNull ? null! : string.Empty; var action = () => builder.WithInitFiles(source); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(source), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void CtorMongoDBDatabaseResourceShouldThrowWhenNameIsNullOrEmpty(bool isNull) { var name = isNull ? null! : string.Empty; const string databaseName = "db"; var parent = new MongoDBServerResource("mongodb"); var action = () => new MongoDBDatabaseResource(name, databaseName, parent); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(name), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void CtorMongoDBDatabaseResourceShouldThrowWhenDatabaseNameIsNullOrEmpty(bool isNull) { const string name = "mongodb"; var databaseName = isNull ? null! : string.Empty; var parent = new MongoDBServerResource(name); var action = () => new MongoDBDatabaseResource(name, databaseName, parent); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(databaseName), exception.ParamName); } [Fact] public void CtorMongoDBDatabaseResourceShouldThrowWhenParentIsNull() { const string name = "mongodb"; const string databaseName = "db"; MongoDBServerResource parent = null!; var action = () => new MongoDBDatabaseResource(name, databaseName, parent); var exception = Assert.Throws<ArgumentNullException>(action); Assert.Equal(nameof(parent), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void CtorMongoDBServerResourceShouldThrowWhenNameIsNullOrEmpty(bool isNull) { var name = isNull ? null! : string.Empty; var action = () => new MongoDBServerResource(name); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(name), exception.ParamName); } [Theory] [InlineData(true)] [InlineData(false)] public void CtorMongoExpressContainerResourceShouldThrowWhenNameIsNullOrEmpty(bool isNull) { var name = isNull ? null! : string.Empty; var action = () => new MongoExpressContainerResource(name); var exception = isNull ? Assert.Throws<ArgumentNullException>(action) : Assert.Throws<ArgumentException>(action); Assert.Equal(nameof(name), exception.ParamName); } }