コード例 #1
0
        internal static IRepository<Image> DummyImagesRepository()
        {
            var repository = new Mock<IRepository<Image>>();
            var images = new List<Image>();

            for (int i = 0; i < NumberOfTestObjects; i++)
            {
                var user = DummyHitmenRepository()
                    .All()
                    .FirstOrDefault(u => u.Id == i.ToString());

                images.Add(new Image()
                {
                    Id = i,
                    Name = "Image #" + i,
                    Extension = ".png",
                    UserId = user.Id,
                    User = user
                });
            }

            repository.Setup(r => r.All()).Returns(() =>
            {
                return images.AsQueryable();
            });

            repository
                .Setup(r => r.Add(It.IsAny<Image>()))
                .Callback<Image>(i =>
                {
                    i.Id = images.LastOrDefault().Id + 1;
                    images.Add(i);
                });

            repository.Setup(r => r.SaveChanges()).Returns(images.Last().Id);

            repository
                .Setup(r => r.Delete(It.IsAny<Image>()))
                .Callback<Image>(i =>
                {
                    images.RemoveAt(i.Id);
                });

            return repository.Object;
        }