예제 #1
0
        public void Create()
        {
            var      memoryStore  = new List <Contract>();
            Contract contractStub = new Contract {
                Id = 1
            };
            var mock = new Mock <IRepository <Contract> >();

            mock.Setup(repo => repo.GetAll()).Returns(memoryStore.AsQueryable());
            mock.Setup(repo => repo.Create(It.IsAny <Contract>())).Returns((Contract contract) => {
                contract.Id = 1;
                memoryStore.Add(contract);
                return(contract);
            });
            var factoryMock = new Mock <IRepositoryFactory>();

            factoryMock.Setup(f => f.GetRepository <Contract>()).Returns(mock.Object);
            _contractController = new ContractController(factoryMock.Object);
            var emptyJson = _contractController.GetAll();

            Assert.IsNotNull(emptyJson);
            var emptyStore = emptyJson.Value as List <Contract>;

            Assert.IsNotNull(emptyStore);
            Assert.AreEqual(emptyStore.Count, 0);
            var json = _contractController.Create(contractStub);

            Assert.IsNotNull(json);
            var result = json.Value as Contract;

            Assert.NotNull(result);
            Assert.AreEqual(result.Id, 1);
            Assert.AreEqual(result.Address, contractStub.Address);
            var notEmptyJson = _contractController.GetAll();

            Assert.IsNotNull(notEmptyJson);
            var notEmptyStore = notEmptyJson.Value as List <Contract>;

            Assert.IsNotNull(notEmptyStore);
            Assert.AreEqual(notEmptyStore.Count, 1);
        }