/// <summary>
 /// 返信を投稿
 /// </summary>
 /// <param name="board"></param>
 /// <param name="data">投稿データ</param>
 public void PostResponse( BoardEntity board, BoardPostEntity data )
 {
     if ( board != null ) {
         board.Posts.Add( data );
         db_.SaveChanges();
     }
 }
 /// <summary>
 /// 掲示板追加
 /// </summary>
 /// <param name="newBoard">追加する掲示板情報</param>
 /// <returns>追加した掲示板のID</returns>
 public int Add( BoardEntity newBoard )
 {
     var result = db_.Boards.Add( newBoard );
     db_.SaveChanges();
     return result != null ? result.Id : 0;
 }
        public void PostCreate()
        {
            // モック用意
            var mockset = new Mock<DbSet<BoardEntity>>();
            var mockcontext = new Mock<BoardDbContext>();

            // ダミーデータの生成
            var model = new BoardCreateModel {
                Title = "題名",
                Text = "本文"
            };

            // Addの返り値フック
            var dummy = new BoardEntity { Id = 1, Title = model.Title, Text = model.Text };
            mockset.As<IDbSet<BoardEntity>>().Setup( m => m.Add( It.IsAny<BoardEntity>() ) ).Returns( dummy );

            mockcontext.Setup( m => m.Boards ).Returns( mockset.Object );

            var controller = new BoardController(mockcontext.Object);
            var result = controller.Create(model) as RedirectResult;
            Assert.IsNotNull( result );

            // Addが呼ばれたかチェック
            mockset.Verify( m => m.Add( It.Is<BoardEntity>( o => o.Title == model.Title && o.Text == model.Text ) ), Times.Once );

            // SaveChangesがよばれたかチェック
            mockcontext.Verify( m => m.SaveChanges(), Times.Once );

            Assert.AreEqual( result.Url, "/Board/Show/1" );
        }