コード例 #1
0
        public void MustProcessBlockRulesFirst()
        {
            var allow = new Mock <IRule>();
            var block = new Mock <IRule>();

            allow.SetupGet(r => r.Result).Returns(FilterResult.Allow);
            block.SetupGet(r => r.Result).Returns(FilterResult.Block);
            block.Setup(r => r.IsMatch(It.IsAny <Request>())).Returns(true);

            sut.Load(allow.Object);
            sut.Load(block.Object);

            var result = sut.Process(new Request());

            allow.Verify(r => r.IsMatch(It.IsAny <Request>()), Times.Never);
            block.Verify(r => r.IsMatch(It.IsAny <Request>()), Times.Once);

            Assert.AreEqual(FilterResult.Block, result);
        }