Skip to content

TestLibraryをリネームして移動する #131

TestLibraryをリネームして移動する

TestLibraryをリネームして移動する #131

GitHub Actions / Test results succeeded Feb 1, 2024 in 0s

100 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
samples/ConsoleAppWithDI/solution/tests/Maris.ConsoleApp.IntegrationTests/TestResults/_fv-az447-731_2024-02-01_14_46_04.trx 15✅ 4s
samples/ConsoleAppWithDI/solution/tests/Maris.ConsoleApp.UnitTests/TestResults/_fv-az447-731_2024-02-01_14_46_02.trx 85✅ 3s

✅ samples/ConsoleAppWithDI/solution/tests/Maris.ConsoleApp.IntegrationTests/TestResults/_fv-az447-731_2024-02-01_14_46_04.trx

15 tests were completed in 4s with 15 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Maris.ConsoleApp.IntegrationTests.ScopeTests.ScopedTest 5✅ 1s
Maris.ConsoleApp.IntegrationTests.ScopeTests.SingletonTest 5✅ 172ms
Maris.ConsoleApp.IntegrationTests.ScopeTests.TransientTest 5✅ 256ms

✅ Maris.ConsoleApp.IntegrationTests.ScopeTests.ScopedTest

✅ Scopedで登録したインスタンスはコマンドの実行時に破棄されていない
✅ Scopedで登録したインスタンスはコマンド実行時に1回だけ初期化される
✅ Scopedで登録したインスタンスはホストの終了時に1回破棄が実行される
✅ Scopedで登録したインスタンスはホストの終了時に1回破棄される
✅ Scopedで登録したインスタンスは型ごとに1つだけ

✅ Maris.ConsoleApp.IntegrationTests.ScopeTests.SingletonTest

✅ Singletonで登録したインスタンスはコマンドの実行時に破棄されていない
✅ Singletonで登録したインスタンスはコマンド実行時に1回だけ初期化される
✅ Singletonで登録したインスタンスはホストの終了時に1回破棄が実行される
✅ Singletonで登録したインスタンスはホストの終了時に1回破棄される
✅ Singletonで登録したインスタンスは型ごとに1つだけ

✅ Maris.ConsoleApp.IntegrationTests.ScopeTests.TransientTest

✅ Transientで登録したインスタンスはインジェクションされるごとに1つ
✅ Transientで登録したインスタンスはインジェクション時に毎回初期化される
✅ Transientで登録したインスタンスはコマンドの実行時に破棄されていない
✅ Transientで登録したインスタンスはホストの終了時に1回破棄が実行される
✅ Transientで登録したインスタンスはホストの終了時に1回破棄される

✅ samples/ConsoleAppWithDI/solution/tests/Maris.ConsoleApp.UnitTests/TestResults/_fv-az447-731_2024-02-01_14_46_02.trx

85 tests were completed in 3s with 85 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Maris.ConsoleApp.UnitTests.Core.AsyncCommandTest 5✅ 77ms
Maris.ConsoleApp.UnitTests.Core.CommandAttributeTest 3✅ 17ms
Maris.ConsoleApp.UnitTests.Core.CommandBaseTest 12✅ 14ms
Maris.ConsoleApp.UnitTests.Core.CommandExecutorTest 14✅ 85ms
Maris.ConsoleApp.UnitTests.Core.CommandTypeExtensionsTest 4✅ 0ms
Maris.ConsoleApp.UnitTests.Core.ConsoleAppContextTest 5✅ 1ms
Maris.ConsoleApp.UnitTests.Core.InvalidParameterExceptionTest 5✅ 20ms
Maris.ConsoleApp.UnitTests.Core.SyncCommandTest 5✅ 14ms
Maris.ConsoleApp.UnitTests.Hosting.CommandParameterTypeCollectionTest 7✅ 18ms
Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppHostedServiceTest 11✅ 405ms
Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppSettingsTest 2✅ 17ms
Maris.ConsoleApp.UnitTests.Hosting.DefaultCommandManagerTest 5✅ 18ms
Maris.ConsoleApp.UnitTests.Hosting.ServiceCollectionExtensionsTest 7✅ 305ms

✅ Maris.ConsoleApp.UnitTests.Core.AsyncCommandTest

✅ IAsyncCommandのExecuteAsyncを呼び出すとExecuteAsyncメソッドが指定したパラメーターとキャンセルトークンを伴って呼び出される
✅ Parameter_ConsoleAppContextに設定したパラメーターを取得できる
✅ ValidateAllParameterを呼び出すとValidateParameterメソッドが指定したパラメーターを伴って呼び出される
✅ パラメーターの型とコンテキストのパラメーター型が一致しない場合は例外
✅ パラメーターの型にインターフェースを使用できる

✅ Maris.ConsoleApp.UnitTests.Core.CommandAttributeTest

✅ CommandType_コンストラクターで指定したコマンドの型を取得できる
✅ Constructor_コマンドの型がnullの場合は例外
✅ Constructor_コマンドの型がコマンドの定義を満たしていない場合は例外

✅ Maris.ConsoleApp.UnitTests.Core.CommandBaseTest

✅ CommandName_初期値はnull
✅ CommandName_初期化時に指定したコマンド名を取得できる
✅ Context_初期値のまま取得すると例外
✅ Context_初期化時に指定したコンテキストを取得できる
✅ Initialize_nullで初期化すると例外
✅ ValidateAllParameter_コマンドクラスのロジック内でパラメーターの入力値検証エラーがあった
✅ ValidateAllParameter_入力パラメータのクラスにプロパティがあるが検証属性が定義されていない
✅ ValidateAllParameter_入力パラメータのクラスにプロパティが定義されていない
✅ ValidateAllParameter_入力パラメータのクラスに検証属性を定義したプロパティがあり一部検証に失敗する値が設定されている
✅ ValidateAllParameter_入力パラメータのクラスに検証属性を定義したプロパティがあり検証に成功する値が設定されている(param1: "", param2: 0)
✅ ValidateAllParameter_入力パラメータのクラスに検証属性を定義したプロパティがあり検証に成功する値が設定されている(param1: "1234567890", param2: 5)
✅ ValidateAllParameter_入力パラメータのクラスに検証属性を定義したプロパティがあり複数検証に失敗する値が設定されている

✅ Maris.ConsoleApp.UnitTests.Core.CommandExecutorTest

✅ CommandName_マネージャーで生成したコマンドオブジェクトの名前を取得できる(commandName: "")
✅ CommandName_マネージャーで生成したコマンドオブジェクトの名前を取得できる(commandName: "dummy-command")
✅ CommandName_マネージャーで生成したコマンドオブジェクトの名前を取得できる(commandName: null)
✅ Constructor_managerがnullの場合は例外
✅ Constructor_managerを使ってコマンドが生成される
✅ Constructor_マネージャーがコマンドを作成できなかった場合は例外
✅ Constructor_ロガーがnullの場合は例外
✅ ExecuteCommandAsync_AsyncCommandの派生コマンドにパラメーターとキャンセルトークンが引き渡される
✅ ExecuteCommandAsync_AsyncCommandの派生コマンドを実行可能
✅ ExecuteCommandAsync_SyncCommandの派生コマンドにパラメーターが引き渡される
✅ ExecuteCommandAsync_SyncCommandの派生コマンドを実行可能
✅ ExecuteCommandAsync_コマンド内のカスタム入力値検証に失敗した場合は例外
✅ ExecuteCommandAsync_パラメーターのカスタム入力検証に失敗した場合は例外
✅ ExecuteCommandAsync_パラメーターの入力検証に失敗した場合は例外

✅ Maris.ConsoleApp.UnitTests.Core.CommandTypeExtensionsTest

✅ IsCommandType_CommandBaseだけを継承した型を指定するとfalseを取得する
✅ IsCommandType_SyncCommandまたはAsyncCommandを継承した型を指定するとtrueを取得する(t: typeof(Maris.ConsoleApp.UnitTests.Core.CommandTypeExtensionsTest+AsyncCommandImpl))
✅ IsCommandType_SyncCommandまたはAsyncCommandを継承した型を指定するとtrueを取得する(t: typeof(Maris.ConsoleApp.UnitTests.Core.CommandTypeExtensionsTest+SyncCommandImpl))
✅ IsCommandType_コマンドとは無関係の型を指定するとfalseを取得する

✅ Maris.ConsoleApp.UnitTests.Core.ConsoleAppContextTest

✅ CommandName_パラメータークラスに付与したコマンドの名前を取得できる
✅ CommandType_パラメータークラスに付与したコマンドの型を取得できる
✅ Constructor_パラメーターがnullの場合は例外
✅ Constructor_パラメーターにCommandAttributeがついていない場合は例外
✅ Parameter_コンストラクタに指定したパラメーターを取得できる

✅ Maris.ConsoleApp.UnitTests.Core.InvalidParameterExceptionTest

✅ Message_メッセージの既定値の確認
✅ Message_検証結果が1件登録されている場合
✅ Message_検証結果が2件登録されている場合
✅ ValidationResults_検証結果のリストを指定した場合はそれを取得できる
✅ ValidationResults_検証結果のリストを指定しない場合は空のリストを取得できる

✅ Maris.ConsoleApp.UnitTests.Core.SyncCommandTest

✅ ISyncCommandのExecuteを呼び出すとExecuteメソッドが指定したパラメーターを伴って呼び出される
✅ Parameter_ConsoleAppContextに設定したパラメーターを取得できる
✅ ValidateAllParameterを呼び出すとValidateParameterメソッドが指定したパラメーターを伴って呼び出される
✅ パラメーターの型とコンテキストのパラメーター型が一致しない場合は例外
✅ パラメーターの型にインターフェースを使用できる

✅ Maris.ConsoleApp.UnitTests.Hosting.CommandParameterTypeCollectionTest

✅ GetEnumerator_要素を追加せずに取得すると空の列挙子を取得できる
✅ InitializeFromAllAssemblies_現在のアプリケーションドメインに読み込まれているアセンブリを登録できる
✅ アセンブリからパラメーターの型だけが登録される
✅ クラスの定義されていないアセンブリを読み込んでもパラメーターの型は登録されない
✅ パラメーターではないクラスだけが定義されたアセンブリを読み込んでもパラメーターの型は登録されない
✅ 同じ名前のコマンドがあると登録エラーになる
✅ 読み込んだアセンブリのリストを取得できる

✅ Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppHostedServiceTest

✅ Constructor_executorがnullの場合は例外
✅ Constructor_lifetimeがnullの場合は例外
✅ Constructor_loggerがnullの場合は例外
✅ Constructor_settingsがnullの場合は例外
✅ StartAsync_コマンドが完了するとIHostApplicationLifetimeのStopApplicationが呼び出される(context: ConsoleAppContext { CommandName = "dummy-command", CommandType = typeof(Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppHostedServiceTest+SyncCommandImpl), Parameter = CommandParameter { } }, command: SyncCommandImpl { })
✅ StartAsync_コマンドが完了するとIHostApplicationLifetimeのStopApplicationが呼び出される(context: ConsoleAppContext { CommandName = "error-command", CommandType = typeof(Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppHostedServiceTest+TestCommand), Parameter = CommandParameter { } }, command: TestCommand { })
✅ StartAsync_コマンドが完了するとIHostApplicationLifetimeのStopApplicationが呼び出される(context: ConsoleAppContext { CommandName = "validation-error-command", CommandType = typeof(Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppHostedServiceTest+ValidationErrorCommand), Parameter = CommandParameter { } }, command: ValidationErrorCommand { })
✅ StartAsync_コマンドが正常に完了するとコマンドから返却した終了コードが設定される
✅ StartAsync_コマンドの入力値エラーがあると設定の入力値検証エラーの終了コードが設定される
✅ StartAsync_コマンドの実行時に例外が発生すると設定のエラーの既定の終了コードが設定される
✅ StopAsync_例外が発生しない

✅ Maris.ConsoleApp.UnitTests.Hosting.ConsoleAppSettingsTest

✅ DefaultErrorExitCode_既定値の確認
✅ DefaultValidationErrorExitCode_既定値の確認

✅ Maris.ConsoleApp.UnitTests.Hosting.DefaultCommandManagerTest

✅ Constructor_ConsoleAppContextがnullの場合は例外
✅ Constructor_IServiceProviderがnullの場合は例外
✅ ReleaseCommandを呼び出すとスコープがクローズされる
✅ ReleaseCommandを複数回呼び出しても例外にならずスコープはクローズされる
✅ マネージャーに設定したコンテキストの情報が初期化処理を通してコマンドにも設定される

✅ Maris.ConsoleApp.UnitTests.Hosting.ServiceCollectionExtensionsTest

✅ ConsoleAppSettingsの設定処理を指定しないと既定のオブジェクトで初期化される
✅ ConsoleAppSettingsの設定処理を指定すると指定した値で初期化される
✅ アセンブリ内にコマンドが登録されていない場合は例外
✅ コンソールアプリケーションの初期化処理を呼び出すと必要なサービスが登録される
✅ 登録されていないコマンド名を指定した場合は検証エラーのエラーコードを伴ってアプリケーションが終了する
✅ 登録されているコマンド名を指定するとDIコンテナーからConsoleAppContextが生成できる(commandName: "test-command1", parameterType: typeof(Maris.ConsoleApp.UnitTests.Hosting.ServiceCollectionExtensionsTest+TestParameter1), commandType: typeof(Maris.ConsoleApp.UnitTests.Hosting.ServiceCollectionExtensionsTest+TestCommand1))
✅ 登録されているコマンド名を指定するとDIコンテナーからConsoleAppContextが生成できる(commandName: "test-command2", parameterType: typeof(Maris.ConsoleApp.UnitTests.Hosting.ServiceCollectionExtensionsTest+TestParameter2), commandType: typeof(Maris.ConsoleApp.UnitTests.Hosting.ServiceCollectionExtensionsTest+TestCommand2))