public async Task 正常系_更新_エラー発生試験() { var cfg = MakeTestConfig(); var s = new RecordingTableService(cfg); // テストデータはすべて消去する await s.DeleteALL(true); var data = new CsharpSamples.Generated.Models.RecordingTableModel(); data.BasicItemData.Title = "タイトルてすと"; data.BasicItemData.Body = "本文"; data.BasicItemData.Comments = "コメント"; // 個別の試験用データを設定する data.ExtensionElements.CheckA = true; data.ExtensionElements.DateA = DateTime.Now; data.ExtensionElements.NumA = Int32.MaxValue; data.ExtensionElements.StringA = "StringA"; data.ExtensionElements.TypeA = "TypeA"; // 試験用のデータを作成する // itemを生成する var x = await s.CreateItem(data); // --- --- --- // ★ APIエラーを発生させる cfg.ApiKey = cfg.ApiKey + "a"; // 対象例外を発生させる HackPleasanterApiExceptions targrteExp = null; try { // itemを生成する var x2 = await s.UpdateItem(x.Id, data); } catch (HackPleasanterApiExceptions exp) { targrteExp = exp; } Assert.IsNotNull(targrteExp); Assert.AreEqual(DefaultConfiguration.RetryCount, targrteExp.InnerExceptions.Count); var tex = targrteExp.InnerExceptions[0] as CreateItemException; Assert.AreEqual("認証できませんでした。", tex.CreateItemResponse.Message); }
public async Task 異常系_指定回数リトライカウントされることを確認() { // 対象例外を発生させる HackPleasanterApiExceptions targrteExp = null; try { var r = await ServiceHelperFunctions.DoReyry <int>(async() => { await Task.CompletedTask; throw new ApplicationException("Error"); }); } catch (HackPleasanterApiExceptions exp) { targrteExp = exp; } Assert.IsNotNull(targrteExp); Assert.AreEqual(DefaultConfiguration.RetryCount, targrteExp.InnerExceptions.Count); var tex = targrteExp.InnerExceptions[0] as ApplicationException; Assert.AreEqual("Error", tex.Message); }