Ejemplo n.º 1
0
        public void 呼叫_ILogDao_DebugObj_DebugCollection_次數1_參數為參考型別()
        {
            var condition = new QueryCondition {
                Keyword = "3"
            };

            IDao dao = Substitute.For <IDao>();

            dao.QueryCondition(condition)
            .Returns(new List <DTO>
            {
                new DTO
                {
                    Id   = 3,
                    Name = "C"
                }
            });

            ILogDao logDao = Substitute.For <ILogDao>();

            var target = new BL(dao, logDao);

            target.Query(condition);

            // test success:reference equal
            // logDao.Received(1).DebugObject(condition);

            // test fail
            //var expectedCondition = new QueryCondition { Keyword = "3" };
            //logDao.Received(1).DebugObject(expectedCondition);

            logDao.Received(1).DebugObject(Arg.Is <QueryCondition>(x => QueryConditionIsEqual(x, condition)));
        }
Ejemplo n.º 2
0
        public void 呼叫_ILogDao_Debug_次數1()
        {
            IDao dao = Substitute.For <IDao>();

            dao.Query().Returns(new List <DTO>
            {
                new DTO
                {
                    Id   = 1,
                    Name = "A"
                },
                new DTO
                {
                    Id   = 2,
                    Name = "B"
                }
            });

            ILogDao logDao = Substitute.For <ILogDao>();

            new BL(dao, logDao).Query();

            //logDao.ReceivedWithAnyArgs(2).Debug(string.Empty);

            //logDao.ReceivedWithAnyArgs(1).Debug(string.Empty);

            logDao.Received(1).Debug("No Condition QueryCondition");
        }
Ejemplo n.º 3
0
        public void 隔離測試()
        {
            IDao dao = Substitute.For <IDao>();

            dao.Query().Returns(new List <DTO>
            {
                new DTO
                {
                    Id   = 1,
                    Name = "A"
                },
                new DTO
                {
                    Id   = 2,
                    Name = "B"
                }
            });

            ILogDao logDao = Substitute.For <ILogDao>();

            var target = new BL(dao, logDao);
            var actual = target.Query();

            var expected = new[]
            {
                new
                {
                    Id   = 1,
                    Name = "A"
                },
                new
                {
                    Id   = 2,
                    Name = "B"
                }
            };

            actual.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 4
0
        public void 呼叫_參數為IEnumerable()
        {
            IEnumerable <int> ids = new[] { 5 };

            IDao dao = Substitute.For <IDao>();

            // 如果 predicate deletegate 回傳是 true 時,就會回傳 Returns() 裡面所指定的 物件
            dao.QueryCondition(Arg.Is <IEnumerable <int> >(x => IdsAreEqual(x, ids)))
            .Returns(new List <DTO>
            {
                new DTO
                {
                    Id   = 5,
                    Name = "E"
                }
            });

            ILogDao logDao = Substitute.For <ILogDao>();

            IEnumerable <int> actualCollection = null;

            logDao.DebugCollection(Arg.Do <int[]>(x => actualCollection = x));

            var target     = new BL(dao, logDao);
            var conditions = new List <VO> {
                new VO {
                    Id = 5
                }
            };

            target.Query(conditions);

            IEnumerable <int> expectedCollection = new[] { 5 };

            actualCollection.Should().BeEquivalentTo(expectedCollection);
        }
Ejemplo n.º 5
0
 public LogService(ILogDao _repository)
 {
     repository = _repository;
 }
Ejemplo n.º 6
0
 public BL(IDao dao, ILogDao logDao)
 {
     _dao    = dao;
     _logDao = logDao;
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 耦合性高的做法
 /// </summary>
 public BL()
 {
     _dao    = new DaoImpl();
     _logDao = new LogImpl();
 }
Ejemplo n.º 8
0
 public LogBLL()
 {
     dal = new ImplLog()
     {
     };
 }