示例#1
0
        public async Task 正常系_種別_DateFilterKey_ソート試験_昇順()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            var sortKey = RecordingTableService.ColumnSorterKeys.DateA;

            sortKey.ColumnSorterType = HackPleasanterApi.Client.Api.Request.View.ColumnSorterType.Asc;
            v.Add(sortKey);

            // ★ 検索実行
            var r = (await s.FindItems(v)).ToList();

            // 結果を確認
            Assert.AreEqual(10, r.ToList().Count());

            // 値は大きい順で指定されている
            for (int i = 1; i <= 10; i++)
            {
                var tr = r[i - 1];
                Assert.AreEqual(tr.ExtensionElements.NumA_value, i);
            }
        }
示例#2
0
        public async Task 正常系_種別_DescriptionFilterKey_検索試験()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 検索条件を設定
            // Like検索
            var findString = "test10";

            var fa = RecordingTableService.FilterKeys.StringA;

            fa.SearchCondition = findString;

            var v = new HackPleasanterApi.Client.Api.Request.View.View();

            v.ColumnFilter = new System.Collections.Generic.List <HackPleasanterApi.Client.Api.Request.View.FilterKey.ColumnFilterHashGenerateInterface>();
            v.ColumnFilter.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(1, r.ToList().Count());

            {
                var correct = correctList.Where(x => x.ExtensionElements.StringA == findString).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#3
0
        public async Task 正常系_IDを指定して削除()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var cfg = MakeTestConfig();
            var s   = new RecordingTableService(cfg);

            //削除対象を取得
            var delTarget = correctList.Take(2).ToList();

            // 指定されたIDのitemを消去する
            var dr = await s.DeleteByConditions(new DeleteAllItemsRequest <CsharpSamples.Generated.Models.RecordingTableModel>
            {
                All            = false,
                PhysicalDelete = false,
                Selected       = delTarget.Select(x => x.BasicItemData.ResultId).ToList()
            });

            Assert.IsNotNull(dr);

            // 指定したデータだけが削除されているか確認する
            var read = await s.FindItems(new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>());

            Assert.AreEqual(8, read.Count());

            Assert.IsFalse(read.Select(x => x.BasicItemData.ResultId).ToList().Contains(delTarget[0].BasicItemData.ResultId));
            Assert.IsFalse(read.Select(x => x.BasicItemData.ResultId).ToList().Contains(delTarget[1].BasicItemData.ResultId));
        }
示例#4
0
        public async Task 正常系_種別_NumFilterKey_検索試験_1件だけ()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 検索条件を設定
            // Like検索
            var findString = 5;

            var fa = RecordingTableService.FilterKeys.NumA;

            fa.AddKey(findString);

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(1, r.ToList().Count());


            {
                var correct = correctList.Where(x => x.ExtensionElements.NumA_value == findString).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#5
0
        public async Task 正常系_種別_ClassFilterKey_検索試験()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 検索条件を設定
            // Like検索
            var findString = RecordingTableService.FilterKeys.TypeA_Choices.ClassA.ChoicesText;

            var fa = RecordingTableService.FilterKeys.TypeA;

            fa.SearchConditions = new List <ChoicesTextElement>();
            fa.SearchConditions.Add(RecordingTableService.FilterKeys.TypeA_Choices.ClassA);

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(3, r.ToList().Count());

            {
                var correct = correctList.Where(x => x.ExtensionElements.TypeA == findString).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#6
0
        public async Task 正常系_種別_DateFilterKey_検索試験_期間指定_以上()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 時刻は期間で指定する
            // 検索には指定時間も含まれるため、2件取得される
            var fa = RecordingTableService.FilterKeys.DateA;

            fa.AddKeyOver(CONST_BaseDataTime.AddDays(8));

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(2, r.ToList().Count());

            {
                var correct = correctList.Where(x => x.ExtensionElements.DateA_value == CONST_BaseDataTime.AddDays(8)).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }

            {
                var correct = correctList.Where(x => x.ExtensionElements.DateA_value == CONST_BaseDataTime.AddDays(9)).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.Skip(1).First().BasicItemData.IssueId);
            }
        }
示例#7
0
        public async Task 正常系_種別_DateFilterKey_検索試験_1件だけ()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 時刻は期間で指定する。
            // 期間の指定は指定された値を含むので、
            // ギリギリ値が含みきらない範囲で指定を行う
            var fa = RecordingTableService.FilterKeys.DateA;

            fa.AddKeyRange(CONST_BaseDataTime, CONST_BaseDataTime.AddDays(1).AddSeconds(-1));

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(1, r.ToList().Count());

            {
                var correct = correctList.Where(x => x.ExtensionElements.DateA_value == CONST_BaseDataTime).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#8
0
        public async Task 正常系_種別_CheckFilterKey_検索試験_falseの場合()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            var fa = RecordingTableService.FilterKeys.CheckA;

            fa.AddKey(false);

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(5, r.ToList().Count());

            // trueとなっている条件を取得
            var trueList = correctList.Where(x => x.ExtensionElements.CheckA_value == false).ToList();

            foreach (var ele in trueList)
            {
                var x = r.Where(x => x.BasicItemData.ResultId == ele.BasicItemData.ResultId).FirstOrDefault();
                Assert.IsNotNull(x);
                Assert.AreEqual(x.ExtensionElements.CheckA_value, false);
            }
        }
示例#9
0
        public async Task 正常系_種別_NumFilterKey_検索試験_部分範囲検索_3番から6番()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 算出条件として指定
            var fa = RecordingTableService.FilterKeys.NumA;

            fa.AddKeyRange(3, 6);

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(4, r.ToList().Count());

            //試験データとして、1から10までの値を作っているので、
            // 3〜6までのデータが取得されている想定
            for (int i = 3; i <= 6; i++)
            {
                var correct = correctList.Where(x => x.ExtensionElements.NumA_value == i).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#10
0
        public async Task 正常系_種別_NumFilterKey_検索試験_範囲検索_5番まで()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // 検索条件を設定
            // Like検索
            var findString1 = 5;

            // 算出条件として5以下を指定している
            var fa = RecordingTableService.FilterKeys.NumA;

            fa.AddKeyUnder(findString1);

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(5, r.ToList().Count());

            //試験データとして、1から10までの値を作っているので、
            // 1〜5までのデータが取得されている想定
            for (int i = 1; i <= 5; i++)
            {
                var correct = correctList.Where(x => x.ExtensionElements.NumA_value == i).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#11
0
        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.FindItems(new  HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>());
            }
            catch (HackPleasanterApiExceptions exp)
            {
                targrteExp = exp;
            }

            Assert.IsNotNull(targrteExp);
            Assert.AreEqual(DefaultConfiguration.RetryCount, targrteExp.InnerExceptions.Count);
            var tex = targrteExp.InnerExceptions[0] as GetItemException <ItemApiResults <MultipleItemResponse> >;

            Assert.AreEqual("認証できませんでした。", tex.ItemApiResults.Message);
        }
示例#12
0
        public async Task 正常系_種別_CheckSortKey_ソート試験_降順()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            // チェックを第一要素に
            var chSortKey = RecordingTableService.ColumnSorterKeys.CheckA;

            chSortKey.ColumnSorterType = HackPleasanterApi.Client.Api.Request.View.ColumnSorterType.Asc;
            v.Add(chSortKey);

            // Numを第2要素にする
            var numSortKey = RecordingTableService.ColumnSorterKeys.NumA;

            numSortKey.ColumnSorterType = HackPleasanterApi.Client.Api.Request.View.ColumnSorterType.Desc;
            v.Add(numSortKey);

            // ★ 検索実行
            var r = (await s.FindItems(v)).ToList();

            // 結果を確認
            Assert.AreEqual(10, r.ToList().Count());

            // 二重の条件でソートされてくる
            // 検索結果の上部にはtrueが集まっている
            Assert.AreEqual(r[5].ExtensionElements.NumA_value, 10);
            Assert.AreEqual(r[6].ExtensionElements.NumA_value, 8);
            Assert.AreEqual(r[7].ExtensionElements.NumA_value, 6);
            Assert.AreEqual(r[8].ExtensionElements.NumA_value, 4);
            Assert.AreEqual(r[9].ExtensionElements.NumA_value, 2);

            // trueの後にfalseが集まっている
            Assert.AreEqual(r[0].ExtensionElements.NumA_value, 9);
            Assert.AreEqual(r[1].ExtensionElements.NumA_value, 7);
            Assert.AreEqual(r[2].ExtensionElements.NumA_value, 5);
            Assert.AreEqual(r[3].ExtensionElements.NumA_value, 3);
            Assert.AreEqual(r[4].ExtensionElements.NumA_value, 1);
        }
示例#13
0
        public async Task 正常系_種別_NumFilterKey_検索試験_複合条件_9番より小さい_8番()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var s = new RecordingTableService(MakeTestConfig());

            // ★順番を入れ替えてみる
            // 算出条件として指定
            var fa = RecordingTableService.FilterKeys.NumA;

            fa.AddKey(8);
            fa.AddKeyOver(9);

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // ★ 検索実行
            var r = await s.FindItems(v);

            // 結果を確認
            Assert.AreEqual(3, r.ToList().Count());

            //試験データとして、1から10までの値を作っているので、
            // 9〜10までのデータが取得されている想定
            for (int i = 9; i <= 10; i++)
            {
                var correct = correctList.Where(x => x.ExtensionElements.NumA_value == i).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }

            // 個別に8番が取れているはず
            {
                var correct = correctList.Where(x => x.ExtensionElements.NumA_value == 8).First();
                Assert.AreEqual(correct.BasicItemData.IssueId, r.First().BasicItemData.IssueId);
            }
        }
示例#14
0
        public async Task 正常系_条件指定削除()
        {
            //テスト対象データを作る
            var correctList = await MakeTestTargetData();

            var cfg = MakeTestConfig();

            var s = new RecordingTableService(cfg);

            // 検索条件を設定
            // Like検索
            var findString = "test10";

            var fa = RecordingTableService.FilterKeys.StringA;

            fa.SearchCondition = findString;

            var v = new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>();

            v.Add(fa);

            // 指定条件で削除する
            var dr = await s.DeleteByConditions(new DeleteAllItemsRequest <CsharpSamples.Generated.Models.RecordingTableModel>
            {
                All            = false,
                PhysicalDelete = false,
                View           = v
            });;;

            Assert.IsNotNull(dr);

            // 指定したデータだけが削除されているか確認する
            var read = await s.FindItems(new HackPleasanterApi.Client.Api.Request.View.View <RecordingTableModel>());

            Assert.AreEqual(9, read.Count());
        }