Example #1
0
        public async Task 正常系_全件物理消去()
        {
            var cfg = MakeTestConfig();

            var s = new RecordingTableService(cfg);

            // テストデータはすべて消去する
            var del = 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);

            // itemを生成する
            var dr = await s.DeleteByConditions(new DeleteAllItemsRequest <CsharpSamples.Generated.Models.RecordingTableModel>
            {
                All            = true,
                PhysicalDelete = true
            });;;

            Assert.IsNotNull(dr);
        }
Example #2
0
        public async Task 正常系_作成更新試験()
        {
            var cfg = MakeTestConfig();

            var s = new RecordingTableService(cfg);

            // テストデータはすべて消去する
            var del = 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);

            // 情報を更新する
            data.ExtensionElements.CheckA  = false;
            data.ExtensionElements.DateA   = DateTime.Now;
            data.ExtensionElements.NumA    = Int32.MinValue;
            data.ExtensionElements.StringA = "StringA +1";
            data.ExtensionElements.TypeA   = "TypeA +1";

            var ts = await s.UpdateItem(x.Id, data);

            // 比較用に取得する
            var r = await s.GetItem(x.Id);

            Assert.AreEqual(r.ExtensionElements.CheckA_value, data.ExtensionElements.CheckA_value);

            // ToDo
            // タイムゾーンの問題を対応する

            /*
             * {
             *  var d1 = r.ExtensionElements.DataA_value.Value;
             *  var d2 = data.ExtensionElements.DataA_value.Value.ToJst();
             *
             *  Assert.IsTrue(d1== d2);
             * }
             */

            Assert.AreEqual(r.ExtensionElements.NumA_value, data.ExtensionElements.NumA_value);
            Assert.AreEqual(r.ExtensionElements.StringA, data.ExtensionElements.StringA);
            Assert.AreEqual(r.ExtensionElements.TypeA, data.ExtensionElements.TypeA);
        }
Example #3
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.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);
        }
Example #4
0
        /// <summary>
        /// テストにおいて、検索対象となる情報を生成する
        /// </summary>
        /// <returns></returns>
        private async Task <List <CsharpSamples.Generated.Models.RecordingTableModel> > MakeTestTargetData()
        {
            var cfg = MakeTestConfig();

            var rl = new List <CsharpSamples.Generated.Models.RecordingTableModel>();

            // テストデータを作る
            {
                var s = new RecordingTableService(cfg);

                // テストデータはすべて消去する
                await s.DeleteALL(true);

                var BaseDataTime = CONST_BaseDataTime;

                for (int i = 1; i <= 10; i++)
                {
                    var data = new CsharpSamples.Generated.Models.RecordingTableModel();
                    data.BasicItemData.Title    = "タイトルてすと";
                    data.BasicItemData.Body     = "本文";
                    data.BasicItemData.Comments = "コメント";

                    // テストで検索対象となるデータを作っていく

                    data.ExtensionElements.StringA = "test" + i.ToString();
                    data.ExtensionElements.TypeA   = "Class" + i.ToString();

                    data.ExtensionElements.NumA = i;

                    data.ExtensionElements.CheckA = i % 2 == 0;
                    data.ExtensionElements.DateA  = BaseDataTime;
                    BaseDataTime = BaseDataTime.AddDays(1);

                    await s.CreateItem(data);

                    rl.Add(data);
                }
            }

            return(rl);
        }
Example #5
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";

            // テストデータを読み取る
            var a = AttachmentsHelper.MakeAttachmentsFromFile(Path.Combine(GetCurrentPass(), @"sky.jpg"));

            data.ExtensionElements.AttachmentA = new System.Collections.Generic.List <HackPleasanterApi.Client.Api.Models.ItemModel.Hash.Attachments>();
            data.ExtensionElements.AttachmentA.Add(a);

            // itemを生成する
            var x = await s.CreateItem(data);

            // 情報を更新する
            data.ExtensionElements.CheckA  = false;
            data.ExtensionElements.DateA   = DateTime.Now;
            data.ExtensionElements.NumA    = Int32.MinValue;
            data.ExtensionElements.StringA = "StringA +1";
            data.ExtensionElements.TypeA   = "TypeA +1";

            var ts = await s.UpdateItem(x.Id, data);

            // 比較用に取得する
            var r = await s.GetItem(x.Id);

            // そのまま更新するとitemは2個に複製される
            Assert.AreEqual(2, r.ExtensionElements.AttachmentA.Count);

            // 対象のデータを取得する
            var rData = await s.GetAttachments(r.ExtensionElements.AttachmentA[0]);

            Assert.AreEqual(rData.Response.Base64, a.Base64);

            Assert.AreEqual(r.ExtensionElements.CheckA_value, data.ExtensionElements.CheckA_value);

            //ToDo : タイムフオセットは調整が必要
            // Assert.AreEqual(r.ExtensionElements.DateA_value, data.ExtensionElements.DateA_value);

            Assert.AreEqual(r.ExtensionElements.NumA_value, data.ExtensionElements.NumA_value);
            Assert.AreEqual(r.ExtensionElements.StringA, data.ExtensionElements.StringA);
            Assert.AreEqual(r.ExtensionElements.TypeA, data.ExtensionElements.TypeA);
        }