コード例 #1
0
        public void MatchAndSave_LoopsUntil_SuccessfulSave()
        {
            var expected = new List <SerialNumberItem> {
                new SerialNumberItem {
                    ProductId = "00776", Color = "BL", SerialNum = 1
                }, new SerialNumberItem {
                    ProductId = "00776", Color = "BL", SerialNum = 2
                }
            };

            _repo.Stub(r => r.UpdateSerialNumberItem(Arg <SerialNumberItem> .Matches(a => a.SerialNum.Equals(1)), Arg <bool> .Is.Equal(false))).Return(false);
            _repo.Stub(r => r.UpdateSerialNumberItem(Arg <SerialNumberItem> .Matches(a => a.SerialNum.Equals(2)), Arg <bool> .Is.Equal(false))).Return(true);
            _repo.Stub(r => r.FindUnScannedMatch(Arg <SerialNumberItemQuery> .Is.Anything)).Return(expected);
            var model = new MatchModel {
                SerialCode = RSK_PRIMARY, IsInternal = false, DocNumber = DOCNUM
            };

            var actual = new OrderDeliveryService(_repo, _settings, _identity).MatchAndSave(model);

            _repo.AssertWasCalled(r => r.FindUnScannedMatch(Arg <SerialNumberItemQuery> .Matches(a => a.ProductId.Equals("00776") && a.Color.Equals("BL"))));

            Assert.AreEqual(actual.UpdatedItem.SerialNum, 2);
        }