public void Test0030()
        {
            #region テストデータ準備

            var testEntity1 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity2 = TestUtilLib.GenarateRandomTodoTask();

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            var dbEntity1 = DalTodoTask.Find(testEntity1.TodoTaskId);
            var dbEntity2 = DalTodoTask.Find(testEntity2.TodoTaskId);

            Assert.IsNull(dbEntity2);

            #region DBから取得したエンティティと値を比較(全て一致するはず)

            foreach (var property in testEntity1.GetType().GetProperties())
            {
                Assert.AreEqual(property.GetValue(testEntity1), property.GetValue(dbEntity1));
            }

            #endregion
        }
        public void Test0070()
        {
            #region テストデータ準備

            var testEntity  = TestUtilLib.GenarateRandomTodoTask();
            var testEntity1 = new TodoTask().CopyValuesFrom(testEntity);
            testEntity1.TodoTaskId = "a";
            testEntity1.DueDate    = testEntity1.DueDate.Value.AddSeconds(1);
            var testEntity2 = new TodoTask().CopyValuesFrom(testEntity);
            testEntity2.TodoTaskId = "c";
            var testEntity3 = new TodoTask().CopyValuesFrom(testEntity);
            testEntity3.TodoTaskId = "b";

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(3, context.TodoTasks.Count());

            #endregion

            List <TodoTask> dbEntities;
            dbEntities = DalTodoTask.SelectAll();

            Assert.AreEqual(3, dbEntities.Count);
            int i = 0;
            Assert.AreEqual(testEntity3.TodoTaskId, dbEntities[i++].TodoTaskId);
            Assert.AreEqual(testEntity2.TodoTaskId, dbEntities[i++].TodoTaskId);
            Assert.AreEqual(testEntity1.TodoTaskId, dbEntities[i++].TodoTaskId);
        }
Beispiel #3
0
        public void TestMethod0050()
        {
            #region テストデータ準備

            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            using (var context = new EfDbContext())
            {
                context.Add(testEntity);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            var dialogParameters = new DialogParameters {
                { nameof(DialogWindowEditViewModel.Parameter), new DialogWindowEditViewModel.Parameter
                  {
                      TodoTask = testEntity,
                  } }
            };

            var vm = new DialogWindowEditViewModel();
            vm.OnDialogOpened(dialogParameters);

            vm.DeleteClick.Execute();

            // この画面でレコードが削除される
            using (var context = new EfDbContext()) Assert.AreEqual(0, context.TodoTasks.Count());

            // カバレッジ 100% にするためのコード
            vm.RequestClose += new Action <IDialogResult>(delegate { });
            vm.DeleteClick.Execute();
        }
Beispiel #4
0
        public void TestMethod0050()
        {
            #region テストデータ準備

            var testEntityOrg = TestUtilLib.GenarateRandomTodoTask();
            testEntityOrg.StatusCode = StatusCode.CODE_NOT_YET;

            using (var context = new EfDbContext())
            {
                context.Add(testEntityOrg);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            var vm = new MainViewModel(new DummyDialogService());
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region ボタン〔編集〕押下 ⇒ 編集画面右上[×]ボタン押下で戻る

            // 編集前、データグリッドにはテストデータの行が存在する
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);

            vm.EditClick.Execute();

            // 編集前と変わらず、データグリッドにはテストデータの行が存在する
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);

            #endregion
        }
Beispiel #5
0
        public void TestMethod0030()
        {
            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            var dialogParameters = new DialogParameters {
                { nameof(DialogWindowEditViewModel.Parameter), new DialogWindowEditViewModel.Parameter
                  {
                      TodoTask = testEntity,
                  } }
            };

            var vm = new DialogWindowEditViewModel();

            vm.OnDialogOpened(dialogParameters);

            vm.UpdateClick.Execute();

            // この画面でレコードが更新・登録・削除される訳ではない
            using (var context = new EfDbContext()) Assert.AreEqual(0, context.TodoTasks.Count());

            // カバレッジ 100% にするためのコード
            vm.Status.Value  = true;
            vm.RequestClose += new Action <IDialogResult>(delegate { });
            vm.UpdateClick.Execute();
        }
        public void Test0040()
        {
            #region テストデータ準備

            var testEntityBeforeUpdate = TestUtilLib.GenarateRandomTodoTask();
            var testEntityOfUpdate     = TestUtilLib.GenarateRandomTodoTask();
            testEntityOfUpdate.TodoTaskId = testEntityBeforeUpdate.TodoTaskId;
            testEntityOfUpdate.DueDate    = testEntityBeforeUpdate.DueDate.Value.AddMinutes(1);

            using (var context = new EfDbContext())
            {
                context.Add(testEntityBeforeUpdate);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            Assert.AreEqual(0, DalTodoTask.Update(new TodoTask {
                TodoTaskId = null
            }));
            Assert.AreEqual(1, DalTodoTask.Update(testEntityOfUpdate));
            List <TodoTask> dbEntities;

            #region データを取得し、結果を確認(全て一致するはず(レコード登録日時、レコード更新日時 は比較除外))

            using (var context = new EfDbContext()) dbEntities = context.TodoTasks.ToList();
            Assert.AreEqual(1, dbEntities.Count);

            var dbEntity = dbEntities[0];
            foreach (var property in testEntityOfUpdate.GetType().GetProperties())
            {
                switch (property.Name)
                {
                case nameof(testEntityOfUpdate.TodoTaskId):
                    Assert.AreEqual(property.GetValue(testEntityBeforeUpdate), property.GetValue(dbEntity));
                    Assert.AreEqual(property.GetValue(testEntityOfUpdate), property.GetValue(dbEntity));
                    break;

                case nameof(testEntityOfUpdate.CreateDateTime):
                case nameof(testEntityOfUpdate.UpdateDateTime):
                    break;

                default:
                    Assert.AreNotEqual(property.GetValue(testEntityBeforeUpdate), property.GetValue(dbEntity));
                    Assert.AreEqual(property.GetValue(testEntityOfUpdate), property.GetValue(dbEntity));
                    break;
                }
            }

            #endregion
        }
        public void Test0020()
        {
            #region テストデータ準備

            var testEntity  = TestUtilLib.GenarateRandomTodoTask();
            var testEntity1 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity2 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity3 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity4 = new TodoTask().CopyValuesFrom(testEntity);
            {
                int i = 1;

                testEntity1.TodoTaskId = i++.ToString();
                testEntity1.StatusCode = StatusCode.CODE_NOT_YET;

                testEntity2.TodoTaskId = i++.ToString();
                testEntity2.StatusCode = StatusCode.CODE_FINISHED;

                testEntity3.TodoTaskId = i++.ToString();
                testEntity3.StatusCode = StatusCode.NAME_NOT_YET;

                testEntity4.TodoTaskId = i++.ToString();
                testEntity4.StatusCode = StatusCode.NAME_FINISHED;
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.Add(testEntity4);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(4, context.TodoTasks.Count());

            #endregion

            IRequest       request       = new Request();
            MainViewSearch logic         = new MainViewSearch();
            IResponse      response      = logic.DoProcess(request);
            var            searchResults = ((MainViewSearch.Result)response.Result).TodoTasks;

            Assert.AreEqual(3, searchResults.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity1.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity3.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity4.TodoTaskId, searchResults[i++].TodoTaskId);
            }
        }
Beispiel #8
0
        public void TestMethod0060()
        {
            #region テストデータ準備

            var testEntityOrg = TestUtilLib.GenarateRandomTodoTask();
            testEntityOrg.StatusCode = StatusCode.CODE_NOT_YET;

            using (var context = new EfDbContext())
            {
                context.Add(testEntityOrg);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            #region ロジックの応答を設定

            var testEntityUpd = testEntityOrg.CopyValuesFrom(testEntityOrg);
            testEntityUpd.StatusCode = StatusCode.CODE_FINISHED;

            var result = new DialogParameters
            {
                { nameof(DialogWindowEditViewModel.Result), new DialogWindowEditViewModel.Result {
                      TodoTask = testEntityUpd
                  } }
            };

            #endregion

            var vm = new MainViewModel(new DummyDialogService())
            {
                TestDialogResult     = new DialogResult(ButtonResult.OK),
                TestDialogParameters = result,
            };
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region ボタン〔編集〕押下 ⇒ 編集画面〔更新〕押下で戻る

            // 編集前、データグリッドにはテストデータの行が存在する
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);

            vm.EditClick.Execute();

            // 全てのレコードがステータス「finished」になったので、データグリッドの表示行数もゼロ
            Assert.AreEqual(0, vm.DataGridItemsSource.Count);

            #endregion
        }
        public void Test0020()
        {
            #region テストデータ準備

            var testEntityCopyFrom = TestUtilLib.GenarateRandomTodoTask();
            var testEntityCopyTo   = TestUtilLib.GenarateRandomTodoTask();
            testEntityCopyTo.CreateDateTime = DateTime.MinValue.AddMinutes(1);
            testEntityCopyTo.UpdateDateTime = DateTime.MaxValue.AddMinutes(-1);
            testEntityCopyTo.DueDate        = testEntityCopyFrom.DueDate.Value.AddMinutes(1);

            foreach (var property in testEntityCopyFrom.GetType().GetProperties())
            {
                switch (property.Name)
                {
                case nameof(testEntityCopyFrom.CreateDateTime):
                case nameof(testEntityCopyFrom.UpdateDateTime):
                    break;

                default:
                    Assert.AreNotEqual(property.GetValue(testEntityCopyFrom), property.GetValue(testEntityCopyTo));
                    break;
                }
            }

            #endregion

            DalTodoTask.CopyValuesFrom(testEntityCopyTo, testEntityCopyFrom);

            #region コピー後の値を比較(レコードID、レコード登録日時、レコード更新日時 以外は一致するはず)

            foreach (var property in testEntityCopyFrom.GetType().GetProperties())
            {
                switch (property.Name)
                {
                case nameof(testEntityCopyFrom.TodoTaskId):
                case nameof(testEntityCopyFrom.CreateDateTime):
                case nameof(testEntityCopyFrom.UpdateDateTime):
                    Assert.AreNotEqual(property.GetValue(testEntityCopyFrom), property.GetValue(testEntityCopyTo));
                    break;

                default:
                    Assert.AreEqual(property.GetValue(testEntityCopyFrom), property.GetValue(testEntityCopyTo));
                    break;
                }
            }

            #endregion
        }
Beispiel #10
0
        public void TestMethod0040()
        {
            #region テストデータ準備

            var testEntity1 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity2 = TestUtilLib.GenarateRandomTodoTask();
            {
                testEntity1.StatusCode = StatusCode.CODE_NOT_YET;
                testEntity2.StatusCode = StatusCode.CODE_FINISHED;
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(2, context.TodoTasks.Count());

            #endregion

            var vm = new MainViewModel(new DummyDialogService());
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region 初期表示の確認

            // データグリッドには、ステータス「not yet」のレコードのみが表示されている
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);
            Assert.AreEqual(testEntity1.TodoTaskId, vm.DataGridItemsSource[0].TodoTask.TodoTaskId);

            // 行が未選択状態 ⇒ 行を選択
            Assert.IsNull(vm.DataGridSelectedItem.Value);
            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            Assert.AreEqual(testEntity1.TodoTaskId, vm.DataGridSelectedItem.Value.TodoTask.TodoTaskId);
            Assert.AreEqual(StatusCode.NAME_NOT_YET, vm.DataGridSelectedItem.Value.TodoTaskStatusName);

            #endregion

            #region ボタン〔完了〕押下

            vm.FinishClick.Execute();

            // 全てのレコードがステータス「finished」になったので、データグリッドの表示行数もゼロ
            Assert.AreEqual(0, vm.DataGridItemsSource.Count);

            #endregion
        }
        public void Test0060()
        {
            #region テストデータ準備

            var testEntityExist    = TestUtilLib.GenarateRandomTodoTask();
            var testEntityNotExist = TestUtilLib.GenarateRandomTodoTask();

            using (var context = new EfDbContext())
            {
                context.Add(testEntityExist);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            Assert.AreEqual(1, DalTodoTask.Delete(testEntityExist.TodoTaskId));
            Assert.AreEqual(0, DalTodoTask.Delete(testEntityNotExist.TodoTaskId));
            using (var context = new EfDbContext()) Assert.AreEqual(0, context.TodoTasks.Count());
        }
        public void Test0010()
        {
            #region テストデータ準備

            var testEntity  = TestUtilLib.GenarateRandomTodoTask();
            var testEntity1 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity2 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity3 = new TodoTask().CopyValuesFrom(testEntity);
            {
                testEntity1.TodoTaskId = "a";
                testEntity1.DueDate    = testEntity1.DueDate.Value.AddSeconds(1);

                testEntity2.TodoTaskId = "c";

                testEntity3.TodoTaskId = "b";
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(3, context.TodoTasks.Count());

            #endregion

            IRequest       request       = new Request();
            MainViewSearch logic         = new MainViewSearch();
            IResponse      response      = logic.DoProcess(request);
            var            searchResults = ((MainViewSearch.Result)response.Result).TodoTasks;

            Assert.AreEqual(3, searchResults.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity3.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity2.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity1.TodoTaskId, searchResults[i++].TodoTaskId);
            }
        }
Beispiel #13
0
        public void TestMethod0060()
        {
            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            var dialogParameters = new DialogParameters {
                { nameof(DialogWindowEditViewModel.Parameter), new DialogWindowEditViewModel.Parameter
                  {
                      TodoTask = testEntity,
                  } }
            };

            var vm = new DialogWindowEditViewModel();

            vm.OnDialogOpened(dialogParameters);

            // データベースにレコードが存在しない状態
            using (var context = new EfDbContext()) Assert.AreEqual(0, context.TodoTasks.Count());

            vm.AddClick.Execute();

            // この画面でレコードが登録される
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());
        }
Beispiel #14
0
        public void TestMethod0030()
        {
            #region テストデータ準備

            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            using (var context = new EfDbContext())
            {
                context.Add(testEntity);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            #region ロジックの応答を設定

            var mockResponse = new Mock <IResponse>();
            mockResponse.Setup(c => c.IsSucceed).Returns(false);

            #endregion

            var vm = new EditViewModel(new DummyDialogService())
            {
                TestRequest = new Request {
                    Parameter = new EditViewSearch.Parameter()
                }, TestResponse = mockResponse.Object
            };
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region データ検索エラーの確認

            // データ検索が失敗しているので、データグリッドの表示行数もゼロ
            Assert.AreEqual(0, vm.DataGridItemsSource.Count);

            #endregion
        }
        public void Test0025()
        {
            #region テストデータ準備

            var testEntityCopyFrom = TestUtilLib.GenarateRandomTodoTask();
            var testEntityCopyTo   = new TodoTaskCanWriteTest("dummy");

            #endregion

            DalTodoTask.CopyValuesFrom(testEntityCopyTo, testEntityCopyFrom);

            #region コピー後の値を比較(レコードID、追加プロパティ 以外は一致するはず(レコード登録日時、レコード更新日時 は比較除外))

            foreach (var property in testEntityCopyTo.GetType().GetProperties())
            {
                switch (property.Name)
                {
                case nameof(testEntityCopyTo.TodoTaskId):
                    Assert.AreNotEqual(property.GetValue(testEntityCopyFrom), property.GetValue(testEntityCopyTo));
                    break;

                case nameof(testEntityCopyTo.CreateDateTime):
                case nameof(testEntityCopyTo.UpdateDateTime):
                    break;

                case nameof(testEntityCopyTo.CanWriteTest):
                    Assert.AreEqual("dummy", property.GetValue(testEntityCopyTo));
                    break;

                default:
                    Assert.AreEqual(property.GetValue(testEntityCopyFrom), property.GetValue(testEntityCopyTo));
                    break;
                }
            }

            #endregion
        }
        public void Test0010()
        {
            #region テストデータ準備

            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            using (var context = new EfDbContext()) Assert.AreEqual(0, context.TodoTasks.Count());

            #endregion

            Assert.AreEqual(1, DalTodoTask.Add(testEntity));

            #region データを取得し、結果を確認(レコード登録日時、レコード更新日時 以外は一致するはず)

            List <TodoTask> dbEntities;
            using (var context = new EfDbContext()) dbEntities = context.TodoTasks.ToList();
            Assert.AreEqual(1, dbEntities.Count);

            var dbEntity = dbEntities[0];
            foreach (var property in testEntity.GetType().GetProperties())
            {
                switch (property.Name)
                {
                case nameof(testEntity.CreateDateTime):
                case nameof(testEntity.UpdateDateTime):
                    Assert.AreNotEqual(property.GetValue(testEntity), property.GetValue(dbEntity));
                    break;

                default:
                    Assert.AreEqual(property.GetValue(testEntity), property.GetValue(dbEntity));
                    break;
                }
            }

            #endregion
        }
        public void Test0020()
        {
            #region テストデータ準備

            var testEntity  = TestUtilLib.GenarateRandomTodoTask();
            var testEntity1 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity2 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity3 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity4 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity5 = new TodoTask().CopyValuesFrom(testEntity);
            {
                int i = 1;

                testEntity1.TodoTaskId = i++.ToString();
                testEntity1.Subject    = "検索条件";

                testEntity2.TodoTaskId = i++.ToString();
                testEntity2.Subject    = "_検索条件";

                testEntity3.TodoTaskId = i++.ToString();
                testEntity3.Subject    = "検索条件_";

                testEntity4.TodoTaskId = i++.ToString();
                testEntity4.Subject    = "_検索条件_";

                testEntity5.TodoTaskId = i++.ToString();
                testEntity5.Subject    = "検索_条件";
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.Add(testEntity4);
                context.Add(testEntity5);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(5, context.TodoTasks.Count());

            #endregion

            var parameter = new EditViewSearch.Parameter {
                SearchConditionsText = "検索条件"
            };
            IRequest request = new Request {
                Parameter = parameter
            };
            EditViewSearch logic         = new EditViewSearch();
            IResponse      response      = logic.DoProcess(request);
            var            searchResults = ((EditViewSearch.Result)response.Result).TodoTasks;

            Assert.AreEqual(4, searchResults.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity1.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity2.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity3.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity4.TodoTaskId, searchResults[i++].TodoTaskId);
            }
        }
Beispiel #18
0
        public void TestMethod0020()
        {
            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            var dialogParameters = new DialogParameters {
                { nameof(DialogWindowEditViewModel.Parameter), new DialogWindowEditViewModel.Parameter
                  {
                      TodoTask = testEntity,
                  } }
            };

            var vm = new DialogWindowEditViewModel();

            vm.OnDialogOpened(dialogParameters);

            #region 初期表示の確認

            Assert.IsTrue(vm.CanCloseDialog());
            Assert.IsNotNull(vm.Title);

            Assert.AreEqual(testEntity.TodoTaskId, vm.TodoTaskId.Value);
            Assert.AreEqual(testEntity.DueDate.Value.Date, vm.DueDate.Value.Value.Date);
            Assert.AreEqual(testEntity.DueDate.Value.ToString("HH"), vm.DueDateHour.Value);
            Assert.AreEqual(testEntity.DueDate.Value.ToString("mm"), vm.DueDateMinute.Value);
            Assert.AreEqual(false, vm.Status.Value);
            Assert.AreEqual(testEntity.Subject, vm.Subject.Value);

            // 次のボタンは活性状態
            Assert.IsTrue(vm.UpdateClick.CanExecute());
            Assert.IsTrue(vm.CancelClick.CanExecute());
            Assert.IsTrue(vm.DeleteClick.CanExecute());
            Assert.IsTrue(vm.AddClick.CanExecute());

            #endregion

            #region 入力必須項目をクリアすると、ボタンが非活性状態となることの確認

            vm.OnDialogOpened(dialogParameters);
            vm.DueDate.Value = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());
            Assert.IsTrue(vm.CancelClick.CanExecute());
            Assert.IsTrue(vm.DeleteClick.CanExecute());
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.OnDialogOpened(dialogParameters);
            vm.DueDateHour.Value = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());
            Assert.IsTrue(vm.CancelClick.CanExecute());
            Assert.IsTrue(vm.DeleteClick.CanExecute());
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.OnDialogOpened(dialogParameters);
            vm.DueDateMinute.Value = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());
            Assert.IsTrue(vm.CancelClick.CanExecute());
            Assert.IsTrue(vm.DeleteClick.CanExecute());
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.OnDialogOpened(dialogParameters);
            vm.Subject.Value = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());
            Assert.IsTrue(vm.CancelClick.CanExecute());
            Assert.IsTrue(vm.DeleteClick.CanExecute());
            Assert.IsFalse(vm.AddClick.CanExecute());

            #endregion

            #region 追加確認([期日]が null の場合の表示)

            testEntity.DueDate = null;
            vm.OnDialogOpened(dialogParameters);
            Assert.IsNull(vm.DueDate.Value);
            Assert.IsNull(vm.DueDateHour.Value);
            Assert.IsNull(vm.DueDateMinute.Value);

            #endregion

            vm.OnDialogClosed();
        }
Beispiel #19
0
 public static void ClassInitialize(TestContext test_context)
 {
     TestUtilLib.PrepareESqlite3Dll();
 }
Beispiel #20
0
        public void TestMethod0070()
        {
            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            var vm = new EditViewModel(new DummyDialogService());

            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region 画面の各項目を入力して〔追加〕を押下し、その結果をデータグリッドで確認

            // 必須項目入力前、ボタンは非活性状態
            Assert.IsFalse(vm.AddClick.CanExecute());

            // 必須項目入力後、ボタンは活性状態となる
            vm.DueDate.Value = testEntity.DueDate.Value.Date;
            Assert.IsFalse(vm.AddClick.CanExecute());
            vm.DueDateHour.Value = testEntity.DueDate.Value.ToString("HH");
            Assert.IsFalse(vm.AddClick.CanExecute());
            vm.DueDateMinute.Value = testEntity.DueDate.Value.ToString("mm");
            Assert.IsFalse(vm.AddClick.CanExecute());
            vm.Subject.Value = testEntity.Subject;
            Assert.IsTrue(vm.AddClick.CanExecute());
            Assert.IsFalse(vm.UpdateClick.CanExecute()); // ボタン〔更新〕は非活性

            vm.AddClick.Execute();

            // データグリッドに、入力した行が追加される
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);
            {
                var dataGridItem = vm.DataGridItemsSource[0];
                Assert.AreNotEqual(testEntity.TodoTaskId, dataGridItem.TodoTask.TodoTaskId); // 新しいレコードなので、レコードIDは一致しない
                Assert.AreEqual(testEntity.DueDate.Value.Date.AddHours(testEntity.DueDate.Value.Hour).AddMinutes(testEntity.DueDate.Value.Minute), dataGridItem.TodoTask.DueDate);
                Assert.AreEqual(StatusCode.CODE_NOT_YET, dataGridItem.TodoTask.StatusCode);
                Assert.AreEqual(testEntity.Subject, dataGridItem.TodoTask.Subject);
            }

            // 各入力項目の値はクリアされ、ボタンも非活性状態となる
            Assert.IsNull(vm.TodoTaskId.Value);
            Assert.IsNull(vm.DueDate.Value);
            Assert.IsNull(vm.DueDateHour.Value);
            Assert.IsNull(vm.DueDateMinute.Value);
            Assert.IsFalse(vm.Status.Value);
            Assert.IsNull(vm.Subject.Value);
            Assert.IsFalse(vm.AddClick.CanExecute());

            #endregion

            #region データグリッドの行を選択し、入力項目を変更せずに〔追加〕を押下する。もう一行レコードが追加されることをデータグリッドで確認

            // データグリッドの行を選択すると、各入力項目に値がセットされる
            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            Assert.AreEqual(testEntity.DueDate.Value.Date, vm.DueDate.Value.Value.Date);
            Assert.AreEqual(testEntity.DueDate.Value.ToString("HH"), vm.DueDateHour.Value);
            Assert.AreEqual(testEntity.DueDate.Value.ToString("mm"), vm.DueDateMinute.Value);
            Assert.AreEqual(false, vm.Status.Value);
            Assert.AreEqual(testEntity.Subject, vm.Subject.Value);

            // ボタンは活性状態
            Assert.IsTrue(vm.AddClick.CanExecute());

            // 入力必須項目をクリアすると、ボタンは非活性状態となる
            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.DueDate.Value = null;
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.DueDateHour.Value          = null;
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.DueDateMinute.Value        = null;
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.Subject.Value = null;
            Assert.IsFalse(vm.AddClick.CanExecute());

            vm.AddClick.Execute();

            // データグリッドに、入力した行が追加される
            Assert.AreEqual(2, vm.DataGridItemsSource.Count);
            {
                var dataGridItem = vm.DataGridItemsSource[1];
                Assert.AreNotEqual(testEntity.TodoTaskId, dataGridItem.TodoTask.TodoTaskId); // 新しいレコードなので、レコードIDは一致しない
                Assert.AreEqual(testEntity.DueDate.Value.Date.AddHours(testEntity.DueDate.Value.Hour).AddMinutes(testEntity.DueDate.Value.Minute), dataGridItem.TodoTask.DueDate);
                Assert.AreEqual(StatusCode.CODE_NOT_YET, dataGridItem.TodoTask.StatusCode);
                Assert.AreEqual(testEntity.Subject, dataGridItem.TodoTask.Subject);
            }

            #endregion
        }
Beispiel #21
0
        public void TestMethod0060()
        {
            var inputDueDate       = DateTime.MinValue.Date;
            var inputDueDateHour   = "23";
            var inputDueDateMinute = "59";
            var inputStatus        = true;
            var inputSubject       = "ButtonUpdateTest";

            #region テストデータ準備

            var testEntity = TestUtilLib.GenarateRandomTodoTask();

            using (var context = new EfDbContext())
            {
                context.Add(testEntity);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(1, context.TodoTasks.Count());

            #endregion

            var vm = new EditViewModel(new DummyDialogService());
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region 初期表示の確認

            // データグリッドの表示内容は、更新前の状態
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);
            {
                var dataGridItem = vm.DataGridItemsSource[0];
                Assert.AreEqual(testEntity.TodoTaskId, dataGridItem.TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity.DueDate, dataGridItem.TodoTask.DueDate);
                Assert.AreEqual(testEntity.StatusCode, dataGridItem.TodoTask.StatusCode);
                Assert.AreEqual(testEntity.Subject, dataGridItem.TodoTask.Subject);
            }

            // ボタンは非活性状態
            Assert.IsFalse(vm.UpdateClick.CanExecute());

            #endregion

            #region データグリッドの行を選択・各入力項目の有無によるボタン活性状態変更の確認

            // データグリッドの行を選択すると、各入力項目に値がセットされる
            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            Assert.AreEqual(testEntity.TodoTaskId, vm.TodoTaskId.Value);
            Assert.AreEqual(testEntity.DueDate.Value.Date, vm.DueDate.Value.Value.Date);
            Assert.AreEqual(testEntity.DueDate.Value.ToString("HH"), vm.DueDateHour.Value);
            Assert.AreEqual(testEntity.DueDate.Value.ToString("mm"), vm.DueDateMinute.Value);
            Assert.AreEqual(false, vm.Status.Value);
            Assert.AreEqual(testEntity.Subject, vm.Subject.Value);

            // ボタンは活性状態
            Assert.IsTrue(vm.UpdateClick.CanExecute());

            // 入力必須項目をクリアすると、ボタンは非活性状態となる
            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.DueDate.Value = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());

            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.DueDateHour.Value          = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());

            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.DueDateMinute.Value        = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());

            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[0];
            vm.Subject.Value = null;
            Assert.IsFalse(vm.UpdateClick.CanExecute());

            #endregion

            #region 画面の各項目を入力して〔更新〕を押下し、その結果をデータグリッドで確認

            vm.DueDate.Value       = inputDueDate;
            vm.DueDateHour.Value   = inputDueDateHour;
            vm.DueDateMinute.Value = inputDueDateMinute;
            vm.Status.Value        = inputStatus;
            vm.Subject.Value       = inputSubject;

            vm.UpdateClick.Execute();

            // データグリッドの表示内容は、各項目に入力した値に変化する
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);
            {
                var dataGridItem = vm.DataGridItemsSource[0];
                Assert.AreEqual(testEntity.TodoTaskId, dataGridItem.TodoTask.TodoTaskId);
                Assert.AreEqual(inputDueDate.AddHours(Convert.ToInt32(inputDueDateHour)).AddMinutes(Convert.ToInt32(inputDueDateMinute)), dataGridItem.TodoTask.DueDate);
                Assert.AreEqual(StatusCode.CODE_FINISHED, dataGridItem.TodoTask.StatusCode);
                Assert.AreEqual(inputSubject, dataGridItem.TodoTask.Subject);
            }

            // 各入力項目の値はクリアされ、ボタンも非活性状態となる
            Assert.IsNull(vm.TodoTaskId.Value);
            Assert.IsNull(vm.DueDate.Value);
            Assert.IsNull(vm.DueDateHour.Value);
            Assert.IsNull(vm.DueDateMinute.Value);
            Assert.IsFalse(vm.Status.Value);
            Assert.IsNull(vm.Subject.Value);
            Assert.IsFalse(vm.UpdateClick.CanExecute());

            #endregion
        }
Beispiel #22
0
        public void TestMethod0050()
        {
            #region テストデータ準備

            var testEntity1 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity2 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity3 = TestUtilLib.GenarateRandomTodoTask();
            {
                var testDateTime = DateTime.Now;
                int i            = 0;

                testEntity1.StatusCode = StatusCode.CODE_FINISHED;
                testEntity1.DueDate    = testDateTime.AddMilliseconds(i++);

                testEntity2.StatusCode = StatusCode.CODE_FINISHED;
                testEntity2.DueDate    = testDateTime.AddMilliseconds(i++);

                testEntity3.StatusCode = StatusCode.CODE_FINISHED;
                testEntity3.DueDate    = testDateTime.AddMilliseconds(i++);
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(3, context.TodoTasks.Count());

            #endregion

            var vm = new EditViewModel(new DummyDialogService());
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region チェックボックスで削除行を選択せずに、ボタン〔選択した行を削除〕押下

            Assert.AreEqual(3, vm.DataGridItemsSource.Count);

            // データグリッドの行を選択すると、各入力項目に値がセットされる
            Assert.AreEqual(testEntity2.TodoTaskId, vm.DataGridItemsSource[1].TodoTask.TodoTaskId);
            vm.DataGridSelectedItem.Value = vm.DataGridItemsSource[1];
            Assert.AreEqual(testEntity2.TodoTaskId, vm.TodoTaskId.Value);
            Assert.AreEqual(testEntity2.DueDate.Value.Date, vm.DueDate.Value.Value.Date);
            Assert.AreEqual(testEntity2.DueDate.Value.ToString("HH"), vm.DueDateHour.Value);
            Assert.AreEqual(testEntity2.DueDate.Value.ToString("mm"), vm.DueDateMinute.Value);
            Assert.AreEqual(testEntity2.Subject, vm.Subject.Value);


            // ボタン〔選択した行を削除〕を押下したが、チェックボックスで削除行を選択していないため
            // 削除処理は行われず、画面の表示状態は変化しない
            vm.DeleteClick.Execute();

            Assert.AreEqual(3, vm.DataGridItemsSource.Count);
            Assert.AreEqual(testEntity2.TodoTaskId, vm.TodoTaskId.Value);
            Assert.AreEqual(testEntity2.DueDate.Value.Date, vm.DueDate.Value.Value.Date);
            Assert.AreEqual(testEntity2.DueDate.Value.ToString("HH"), vm.DueDateHour.Value);
            Assert.AreEqual(testEntity2.DueDate.Value.ToString("mm"), vm.DueDateMinute.Value);
            Assert.AreEqual(testEntity2.Subject, vm.Subject.Value);

            #endregion

            #region チェックボックスで削除行を選択して、ボタン〔選択した行を削除〕押下

            Assert.AreEqual(3, vm.DataGridItemsSource.Count);

            // チェックボックスで削除行を選択し、ボタン〔選択した行を削除〕を押下
            // データグリッドからその行が無くなり、各入力項目の値もクリアされる
            Assert.AreEqual(testEntity2.TodoTaskId, vm.DataGridItemsSource[1].TodoTask.TodoTaskId);
            vm.DataGridItemsSource[1].IsChecked = true;
            vm.DeleteClick.Execute();

            Assert.AreEqual(2, vm.DataGridItemsSource.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity1.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity3.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
            }
            Assert.IsNull(vm.TodoTaskId.Value);
            Assert.IsNull(vm.DueDate.Value);
            Assert.IsNull(vm.DueDateHour.Value);
            Assert.IsNull(vm.DueDateMinute.Value);
            Assert.IsFalse(vm.Status.Value);
            Assert.IsNull(vm.Subject.Value);

            #endregion

            #region チェックボックスで削除行を全て選択して、ボタン〔選択した行を削除〕押下

            Assert.AreEqual(2, vm.DataGridItemsSource.Count);

            for (int i = 0; i < vm.DataGridItemsSource.Count; i++)
            {
                vm.DataGridItemsSource[i].IsChecked = true;
            }
            vm.DeleteClick.Execute();

            // データグリッドから全ての行が無くなる
            Assert.AreEqual(0, vm.DataGridItemsSource.Count);

            #endregion
        }
Beispiel #23
0
        public void TestMethod0040()
        {
            var subjectMatch   = "検索条件";
            var subjectUnMatch = "検索_条件";
            var today          = DateTime.Now.Date;
            var yesterday      = today.AddDays(-1);
            var tommorow       = today.AddDays(1);

            #region テストデータ準備

            var testEntity1 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity2 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity3 = TestUtilLib.GenarateRandomTodoTask();
            var testEntity4 = TestUtilLib.GenarateRandomTodoTask();
            {
                testEntity1.Subject = subjectMatch;
                testEntity1.DueDate = yesterday;

                testEntity2.Subject    = subjectMatch;
                testEntity2.DueDate    = today;
                testEntity2.StatusCode = StatusCode.CODE_FINISHED;

                testEntity3.Subject = subjectUnMatch;
                testEntity3.DueDate = tommorow.AddMilliseconds(-1);

                testEntity4.Subject = subjectMatch;
                testEntity4.DueDate = tommorow;
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.Add(testEntity4);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(4, context.TodoTasks.Count());

            #endregion

            var vm = new EditViewModel(new DummyDialogService());
            vm.OnNavigatedTo(new Prism.Regions.NavigationContext(null, new Uri("dummy", UriKind.Relative)));

            #region 初期表示の確認

            // データグリッドには、全てのレコードが表示される(絞り込み条件を入力していないため)
            Assert.AreEqual(4, vm.DataGridItemsSource.Count);

            #endregion

            #region [検索ワード]のみを入力し、ボタン〔検索〕押下

            vm.SearchConditionsText.Value = subjectMatch;
            vm.SearchClick.Execute();

            // データグリッドには、条件に一致したレコードのみが表示される
            Assert.AreEqual(3, vm.DataGridItemsSource.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity1.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity2.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity4.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
            }

            #endregion

            #region ボタン〔検索条件クリア〕押下後、[検索開始日]のみを入力し、ボタン〔検索〕押下

            vm.SearchConditionsClearClick.Execute();
            vm.SearchConditionsDateFrom.Value = today;
            vm.SearchClick.Execute();

            // データグリッドには、条件に一致したレコードのみが表示される
            Assert.AreEqual(3, vm.DataGridItemsSource.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity2.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity3.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity4.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
            }

            #endregion

            #region ボタン〔検索条件クリア〕押下後、[検索終了日]のみを入力し、ボタン〔検索〕押下

            vm.SearchConditionsClearClick.Execute();
            vm.SearchConditionsDateTo.Value = today;
            vm.SearchClick.Execute();

            // データグリッドには、条件に一致したレコードのみが表示される
            Assert.AreEqual(3, vm.DataGridItemsSource.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity1.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity2.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
                Assert.AreEqual(testEntity3.TodoTaskId, vm.DataGridItemsSource[i++].TodoTask.TodoTaskId);
            }

            #endregion

            #region ボタン〔検索条件クリア〕押下後、全ての検索項目を入力し、ボタン〔検索〕押下

            vm.SearchConditionsClearClick.Execute();
            vm.SearchConditionsText.Value     = subjectMatch;
            vm.SearchConditionsDateFrom.Value = today;
            vm.SearchConditionsDateTo.Value   = today;
            vm.SearchClick.Execute();

            // データグリッドには、条件に一致したレコードのみが表示される
            Assert.AreEqual(1, vm.DataGridItemsSource.Count);
            Assert.AreEqual(testEntity2.TodoTaskId, vm.DataGridItemsSource[0].TodoTask.TodoTaskId);
            Assert.AreEqual(StatusCode.NAME_FINISHED, vm.DataGridItemsSource[0].TodoTaskStatusName);

            #endregion
        }
        public void Test0050()
        {
            var subjectMatch   = "検索条件";
            var subjectUnMatch = "検索_条件";
            var testDateTime   = DateTime.Now;
            var yesterday      = testDateTime.Date.AddDays(-1);
            var today          = testDateTime.Date;
            var tommorow       = testDateTime.Date.AddDays(1);

            #region テストデータ準備

            var testEntity  = TestUtilLib.GenarateRandomTodoTask();
            var testEntity1 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity2 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity3 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity4 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity5 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity6 = new TodoTask().CopyValuesFrom(testEntity);
            {
                int i = 1;

                testEntity1.TodoTaskId = i++.ToString();
                testEntity1.Subject    = subjectMatch;
                testEntity1.DueDate    = yesterday;

                testEntity2.TodoTaskId = i++.ToString();
                testEntity2.Subject    = subjectUnMatch;
                testEntity2.DueDate    = yesterday;

                testEntity3.TodoTaskId = i++.ToString();
                testEntity3.Subject    = subjectMatch;
                testEntity3.DueDate    = today;

                testEntity4.TodoTaskId = i++.ToString();
                testEntity4.Subject    = subjectUnMatch;
                testEntity4.DueDate    = today;

                testEntity5.TodoTaskId = i++.ToString();
                testEntity5.Subject    = subjectMatch;
                testEntity5.DueDate    = tommorow;

                testEntity6.TodoTaskId = i++.ToString();
                testEntity6.Subject    = subjectUnMatch;
                testEntity6.DueDate    = tommorow;
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.Add(testEntity4);
                context.Add(testEntity5);
                context.Add(testEntity6);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(6, context.TodoTasks.Count());

            #endregion

            var parameter = new EditViewSearch.Parameter
            {
                SearchConditionsText     = subjectMatch,
                SearchConditionsDateFrom = testDateTime,
                SearchConditionsDateTo   = testDateTime,
            };
            IRequest request = new Request {
                Parameter = parameter
            };
            EditViewSearch logic         = new EditViewSearch();
            IResponse      response      = logic.DoProcess(request);
            var            searchResults = ((EditViewSearch.Result)response.Result).TodoTasks;

            Assert.AreEqual(1, searchResults.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity3.TodoTaskId, searchResults[i++].TodoTaskId);
            }
        }
Beispiel #25
0
 public void TestInitialize()
 {
     TestUtilLib.TruncateTables();
 }
        public void Test0040()
        {
            var testDateTime = DateTime.Now;

            #region テストデータ準備

            var testEntity  = TestUtilLib.GenarateRandomTodoTask();
            var testEntity1 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity2 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity3 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity4 = new TodoTask().CopyValuesFrom(testEntity);
            var testEntity5 = new TodoTask().CopyValuesFrom(testEntity);
            {
                int i = 1;

                testEntity1.TodoTaskId = i++.ToString();
                testEntity1.DueDate    = testDateTime.Date.AddMilliseconds(-1); // 昨日の 23:59:59.999

                testEntity2.TodoTaskId = i++.ToString();
                testEntity2.DueDate    = testDateTime.Date; // 本日の 00:00:00.000

                testEntity3.TodoTaskId = i++.ToString();
                testEntity3.DueDate    = testDateTime; // 本日の今の時刻

                testEntity4.TodoTaskId = i++.ToString();
                testEntity4.DueDate    = testDateTime.Date.AddDays(1).AddMilliseconds(-1); // 本日の 23:59:59.999

                testEntity5.TodoTaskId = i++.ToString();
                testEntity5.DueDate    = testDateTime.Date.AddDays(1); // 明日の 00:00:00.000
            }

            using (var context = new EfDbContext())
            {
                context.Add(testEntity1);
                context.Add(testEntity2);
                context.Add(testEntity3);
                context.Add(testEntity4);
                context.Add(testEntity5);
                context.SaveChanges();
            }
            using (var context = new EfDbContext()) Assert.AreEqual(5, context.TodoTasks.Count());

            #endregion

            var parameter = new EditViewSearch.Parameter {
                SearchConditionsDateTo = testDateTime
            };
            IRequest request = new Request {
                Parameter = parameter
            };
            EditViewSearch logic         = new EditViewSearch();
            IResponse      response      = logic.DoProcess(request);
            var            searchResults = ((EditViewSearch.Result)response.Result).TodoTasks;

            Assert.AreEqual(4, searchResults.Count);
            {
                int i = 0;
                Assert.AreEqual(testEntity1.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity2.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity3.TodoTaskId, searchResults[i++].TodoTaskId);
                Assert.AreEqual(testEntity4.TodoTaskId, searchResults[i++].TodoTaskId);
            }
        }