示例#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);

            // 情報を更新する
            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);
        }
示例#2
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);
        }
示例#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";

            // テストデータを読み取る
            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);
        }