Пример #1
0
        public void Init()
        {
            var bookCopies = new List <BookCopy>
            {
                new BookCopy {
                    Id = 1, Condition = BookCondition.Fine, IsLost = false
                },
                new BookCopy {
                    Id = 2, Condition = BookCondition.VeryGood, IsLost = true
                },
            };
            var bookCopyAsQueryable = bookCopies.AsQueryable();

            var isNotLostBookCopyId = 1;
            var isLostBookCopyId    = 2;

            var bookCopiesSet = Substitute.For <DbSet <BookCopy>, IQueryable <BookCopy> >();

            ((IQueryable <BookCopy>)bookCopiesSet).Provider.Returns(bookCopyAsQueryable.Provider);
            ((IQueryable <BookCopy>)bookCopiesSet).Expression.Returns(bookCopyAsQueryable.Expression);
            ((IQueryable <BookCopy>)bookCopiesSet).ElementType.Returns(bookCopyAsQueryable.ElementType);
            ((IQueryable <BookCopy>)bookCopiesSet).GetEnumerator().Returns(bookCopyAsQueryable.GetEnumerator());

            bookCopiesSet.Find(isNotLostBookCopyId).Returns(x => bookCopies.Find(bc => bc.Id == isNotLostBookCopyId));
            bookCopiesSet.Find(isLostBookCopyId).Returns(x => bookCopies.Find(bc => bc.Id == isLostBookCopyId));

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.BookCopies.Returns(bookCopiesSet);
        }
        public void init()
        {
            var categories = new List <Category>
            {
                new Category {
                    Id = 1
                },
                new Category {
                    Id = 2
                },
                new Category {
                    Id = 3
                }
            };
            var categoriesQueryable = categories.AsQueryable();

            // CategoryId to set for a subcategory
            var categoryId     = 3;
            var subcateogories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1
                },
                new SubCategory {
                    Id = 2, CategoryId = categoryId
                }
            }
            .AsQueryable();

            var categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();

            ((IQueryable <Category>)categoriesSet).Provider.Returns(categoriesQueryable.Provider);
            ((IQueryable <Category>)categoriesSet).Expression.Returns(categoriesQueryable.Expression);
            ((IQueryable <Category>)categoriesSet).ElementType.Returns(categoriesQueryable.ElementType);
            ((IQueryable <Category>)categoriesSet).GetEnumerator().Returns(categoriesQueryable.GetEnumerator());

            // Category to remove.
            var categoryIdRemovable    = 2;
            var categoryIdNotRemovable = 3;

            // Mock Remove method.
            categoriesSet.When(x => x.Remove(categories.FirstOrDefault(c => c.Id == categoryIdRemovable)))
            .Do(x => categories.Remove(categories.FirstOrDefault(c => c.Id == categoryIdRemovable)));

            categoriesSet.Find(categoryIdRemovable).Returns(x => categories.Find(c => c.Id == categoryIdRemovable));
            categoriesSet.Find(categoryIdNotRemovable).Returns(x => categories.Find(c => c.Id == categoryIdNotRemovable));


            var subcategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            ((IQueryable <SubCategory>)subcategoriesSet).Provider.Returns(subcateogories.Provider);
            ((IQueryable <SubCategory>)subcategoriesSet).Expression.Returns(subcateogories.Expression);
            ((IQueryable <SubCategory>)subcategoriesSet).ElementType.Returns(subcateogories.ElementType);
            ((IQueryable <SubCategory>)subcategoriesSet).GetEnumerator().Returns(subcateogories.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.SubCategories.Returns(subcategoriesSet);
            _dbContext.Categories.Returns(categoriesSet);
        }
        public void Init()
        {
            // Prepare test data.
            var bookCopies = new List <BookCopy>
            {
                new BookCopy {
                    Id = 1, Condition = BookCondition.Fine
                },
                new BookCopy {
                    Id = 2, Condition = BookCondition.VeryGood
                },
                new BookCopy {
                    Id = 3, Condition = BookCondition.Good
                },
                new BookCopy {
                    Id = 4, Condition = BookCondition.Poor
                },
            }
            .AsQueryable();

            var loans = new List <Loan>
            {
                new Loan {
                    BookCopyId = 1, Status = LoanStatus.Pending
                },
                new Loan {
                    BookCopyId = 3, Status = LoanStatus.Approved
                },
                new Loan {
                    BookCopyId = 4, Status = LoanStatus.InProgress
                }
            }
            .AsQueryable();

            // Prepare DbSets
            var bookCopiesSet = Substitute.For <DbSet <BookCopy>, IQueryable <BookCopy> >();

            ((IQueryable <BookCopy>)bookCopiesSet).Provider.Returns(bookCopies.Provider);
            ((IQueryable <BookCopy>)bookCopiesSet).Expression.Returns(bookCopies.Expression);
            ((IQueryable <BookCopy>)bookCopiesSet).ElementType.Returns(bookCopies.ElementType);
            ((IQueryable <BookCopy>)bookCopiesSet).GetEnumerator().Returns(bookCopies.GetEnumerator());

            var loansSet = Substitute.For <DbSet <Loan>, IQueryable <Loan> >();

            ((IQueryable <Loan>)loansSet).Provider.Returns(loans.Provider);
            ((IQueryable <Loan>)loansSet).Expression.Returns(loans.Expression);
            ((IQueryable <Loan>)loansSet).ElementType.Returns(loans.ElementType);
            ((IQueryable <Loan>)loansSet).GetEnumerator().Returns(loans.GetEnumerator());

            // Configure the DbContext.
            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.BookCopies.Returns(bookCopiesSet);
            _dbContext.Loans.Returns(loansSet);
        }
Пример #4
0
        public void Init()
        {
            var subCategoriesForCategory1 = Substitute.For <ICollection <SubCategory> >();

            // Complex.
            var subCategories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1, Name = "Classics", Category = _categoryToTest
                }
            };

            var subCategoriesForCategory2 = Substitute.For <ICollection <SubCategory> >();

            subCategoriesForCategory2.GetEnumerator().Returns(subCategories.GetEnumerator());

            _categoryToTest = new Category {
                Id = 2, Name = "Programming", SubCategories = subCategoriesForCategory2
            };

            var categories = new List <Category>
            {
                new Category {
                    Id = 1, Name = "History", SubCategories = subCategoriesForCategory1
                },
                _categoryToTest,
                new Category
                {
                    Id            = 3,
                    Name          = "Arts",
                    SubCategories = new List <SubCategory>
                    {
                        new SubCategory {
                            Id = 5, Name = "Martial Arts"
                        }
                    }
                }
            }
            .AsQueryable();

            // Prepare DbSets
            _categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();
            ((IQueryable <Category>)_categoriesSet).Provider.Returns(categories.Provider);
            ((IQueryable <Category>)_categoriesSet).Expression.Returns(categories.Expression);
            ((IQueryable <Category>)_categoriesSet).ElementType.Returns(categories.ElementType);
            ((IQueryable <Category>)_categoriesSet).GetEnumerator().Returns(categories.GetEnumerator());

            _subCategoriesSet = Substitute.For <DbSet <SubCategory> >();

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.Categories.Returns(_categoriesSet);
            _dbContext.SubCategories.Returns(_subCategoriesSet);
        }
        public void Init()
        {
            // Test subcategory.
            var testSubCategory = new SubCategory
            {
                Id       = 2,
                Name     = "Classics",
                Category = new Category {
                    Id            = 1, Name = "Arts",
                    SubCategories = new List <SubCategory> {
                        new SubCategory {
                            Id = 2, Name = "Classics"
                        },
                        new SubCategory {
                            Id = 5, Name = "Martial Arts"
                        }
                    }
                }
            };

            // Categories.
            var subCategories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1, Name = "Modern Arts"
                },
                testSubCategory
            }
            .AsQueryable();

            DbSet <SubCategory> subcategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            subcategoriesSet.Find(Arg.Any <object>()).Returns(callinfo =>
            {
                object[] idValues = callinfo.Arg <object[]>();
                if (idValues != null && idValues.Length == 1)
                {
                    int requestedId = (int)idValues[0];
                    return(subCategories.SingleOrDefault(c => c.Id == requestedId));
                }

                return(null);
            });
            ((IQueryable <SubCategory>)subcategoriesSet).Provider.Returns(subCategories.Provider);
            ((IQueryable <SubCategory>)subcategoriesSet).Expression.Returns(subCategories.Expression);
            ((IQueryable <SubCategory>)subcategoriesSet).ElementType.Returns(subCategories.ElementType);
            ((IQueryable <SubCategory>)subcategoriesSet).GetEnumerator().Returns(subCategories.GetEnumerator());
            subcategoriesSet.Include(Arg.Any <string>()).Returns(subcategoriesSet);

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.SubCategories.Returns(subcategoriesSet);
        }
Пример #6
0
        public void init()
        {
            // Set subcategories with categories and without.
            var subcateogories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1
                },
                new SubCategory {
                    Id = 2
                }
            }
            .AsQueryable();

            var book = new Book
            {
                Id            = 1,
                SubCategories = new List <SubCategory> {
                    subcateogories.FirstOrDefault(sc => sc.Id == 1)
                }
            };

            var books = new List <Book>
            {
                book
            }
            .AsQueryable();

            var subcategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            ((IQueryable <SubCategory>)subcategoriesSet).Provider.Returns(subcateogories.Provider);
            ((IQueryable <SubCategory>)subcategoriesSet).Expression.Returns(subcateogories.Expression);
            ((IQueryable <SubCategory>)subcategoriesSet).ElementType.Returns(subcateogories.ElementType);
            ((IQueryable <SubCategory>)subcategoriesSet).GetEnumerator().Returns(subcateogories.GetEnumerator());

            var booksSet = Substitute.For <DbSet <Book>, IQueryable <Book> >();

            ((IQueryable <Book>)booksSet).Provider.Returns(books.Provider);
            ((IQueryable <Book>)booksSet).Expression.Returns(books.Expression);
            ((IQueryable <Book>)booksSet).ElementType.Returns(books.ElementType);
            ((IQueryable <Book>)booksSet).GetEnumerator().Returns(books.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.SubCategories.Returns(subcategoriesSet);
            _dbContext.Books.Returns(booksSet);
        }
        public void Init()
        {
            var categories = new List <Category>
            {
                new Category {
                    Id = 1, Name = "History"
                }
            }
            .AsQueryable();

            _categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();
            ((IQueryable <Category>)_categoriesSet).Provider.Returns(categories.Provider);
            ((IQueryable <Category>)_categoriesSet).Expression.Returns(categories.Expression);
            ((IQueryable <Category>)_categoriesSet).ElementType.Returns(categories.ElementType);
            ((IQueryable <Category>)_categoriesSet).GetEnumerator().Returns(categories.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.Categories.Returns(_categoriesSet);
        }
        public void init()
        {
            var categories = new List <Category>
            {
                new Category {
                    Id = 1
                }
            }
            .AsQueryable();

            // Set subcategories with categories and without.
            var subcateogories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1, CategoryId = categories.First().Id
                },
                new SubCategory {
                    Id = 2
                }
            }
            .AsQueryable();

            var categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();

            ((IQueryable <Category>)categoriesSet).Provider.Returns(categories.Provider);
            ((IQueryable <Category>)categoriesSet).Expression.Returns(categories.Expression);
            ((IQueryable <Category>)categoriesSet).ElementType.Returns(categories.ElementType);
            ((IQueryable <Category>)categoriesSet).GetEnumerator().Returns(categories.GetEnumerator());

            var subcategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            ((IQueryable <SubCategory>)subcategoriesSet).Provider.Returns(subcateogories.Provider);
            ((IQueryable <SubCategory>)subcategoriesSet).Expression.Returns(subcateogories.Expression);
            ((IQueryable <SubCategory>)subcategoriesSet).ElementType.Returns(subcateogories.ElementType);
            ((IQueryable <SubCategory>)subcategoriesSet).GetEnumerator().Returns(subcateogories.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.Categories.Returns(categoriesSet);
            _dbContext.SubCategories.Returns(subcategoriesSet);
        }
Пример #9
0
        public void Init()
        {
            var bookCopies = new List <BookCopy>
            {
                new BookCopy {
                    Id = 1, Condition = BookCondition.Fine
                },
                new BookCopy {
                    Id = 2, Condition = BookCondition.VeryGood
                },
            }
            .AsQueryable();

            var loans = new List <Loan>
            {
                new Loan {
                    BookCopyId = 1, Status = LoanStatus.Pending
                },
            }
            .AsQueryable();

            var bookCopiesSet = Substitute.For <DbSet <BookCopy>, IQueryable <BookCopy> >();

            ((IQueryable <BookCopy>)bookCopiesSet).Provider.Returns(bookCopies.Provider);
            ((IQueryable <BookCopy>)bookCopiesSet).Expression.Returns(bookCopies.Expression);
            ((IQueryable <BookCopy>)bookCopiesSet).ElementType.Returns(bookCopies.ElementType);
            ((IQueryable <BookCopy>)bookCopiesSet).GetEnumerator().Returns(bookCopies.GetEnumerator());

            var loansSet = Substitute.For <DbSet <Loan>, IQueryable <Loan> >();

            ((IQueryable <Loan>)loansSet).Provider.Returns(loans.Provider);
            ((IQueryable <Loan>)loansSet).Expression.Returns(loans.Expression);
            ((IQueryable <Loan>)loansSet).ElementType.Returns(loans.ElementType);
            ((IQueryable <Loan>)loansSet).GetEnumerator().Returns(loans.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.BookCopies.Returns(bookCopiesSet);
            _dbContext.Loans.Returns(loansSet);
        }
Пример #10
0
        public void Init()
        {
            // Test Category.
            var testCategory = new Category {
                Id = 2, Name = "Engineering"
            };

            // Categories.
            var categories = new List <Category>
            {
                new Category {
                    Id = 1, Name = "History"
                },
                testCategory
            }
            .AsQueryable();

            DbSet <Category> categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();

            categoriesSet.Find(Arg.Any <object>()).Returns(callinfo =>
            {
                object[] idValues = callinfo.Arg <object[]>();
                if (idValues != null && idValues.Length == 1)
                {
                    int requestedId = (int)idValues[0];
                    return(categories.SingleOrDefault(c => c.Id == requestedId));
                }

                return(null);
            });
            ((IQueryable <Category>)categoriesSet).Provider.Returns(categories.Provider);
            ((IQueryable <Category>)categoriesSet).Expression.Returns(categories.Expression);
            ((IQueryable <Category>)categoriesSet).ElementType.Returns(categories.ElementType);
            ((IQueryable <Category>)categoriesSet).GetEnumerator().Returns(categories.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.Categories.Returns(categoriesSet);
        }
 public LibrarianService(ILibraryDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Пример #12
0
 public AccountController(ILibraryDbContext dbContext, UserManagementService userService, SignInService signInService)
     : base(dbContext)
 {
     _userService   = userService;
     _signInService = signInService;
 }
Пример #13
0
 public BookService(ILibraryDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Пример #14
0
        public void Init()
        {
            // Authors
            var authors = new List <Author>
            {
                new Author()
                {
                    Id    = 1, FirstName = "Jamie", LastName = "Chan",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 1,
                            Title       = "Learn C# in One Day and Learn It Well: C# for Beginners with Hands-on Project (Learn Coding Fast with Hands-On Project) (Volume 3)",
                            ISBN        = "1518800270",
                            FrontCover  = "~/Content/Images/Books/front-covers/1518800270.jpg",
                            Description = "If you are a beginning programmer wanting to learn C# .NET programming, this book is the perfect introduction. It is too basic for experienced programmers, but it is just perfect for someone just starting out with C# programming, since it is easy to follow and all the concepts are explained very well.",
                            PublishDate = new DateTime(2015, 10, 27),
                        }
                    }
                },
                new Author()
                {
                    Id    = 2, FirstName = "R.", MiddleName = "B.", LastName = "Whitaker",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 2,
                            Title       = "The C# Player's Guide (2nd Edition)",
                            ISBN        = "0985580127",
                            FrontCover  = "~/Content/Images/Books/front-covers/0985580127.jpg",
                            Description = "The C# Player's Guide (2nd Edition) is the ultimate guide for people starting out with C#, whether you are new to programming, or an experienced vet. This guide takes you from your journey's beginning, through the most challenging parts of programming in C#, and does so in a way that is casual, informative, and fun. This version of the book is updated for C# 6.0, .NET 4.6, and Visual Studio 2015.",
                            PublishDate = new DateTime(2015, 9, 22),
                        }
                    }
                },
                new Author()
                {
                    Id    = 3, FirstName = "Brian", LastName = "Goetz",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 3,
                            Title       = "Java Concurrency in Practice 1st Edition",
                            ISBN        = "7678678676",
                            FrontCover  = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19),
                        },
                    }
                },
                new Author()
                {
                    Id    = 4, FirstName = "Tim", LastName = "Peierls",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 3,
                            Title       = "Java Concurrency in Practice 1st Edition",
                            ISBN        = "7678678676",
                            FrontCover  = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19),
                        },
                    }
                },
                new Author()
                {
                    Id    = 5, FirstName = "Joshua", LastName = "Bloch",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 3,
                            Title       = "Java Concurrency in Practice 1st Edition",
                            ISBN        = "7678678676",
                            FrontCover  = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19),
                        },
                    }
                },
                new Author()
                {
                    Id    = 6, FirstName = "Joseph", LastName = "Bowbeer",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 3,
                            Title       = "Java Concurrency in Practice 1st Edition",
                            ISBN        = "7678678676",
                            FrontCover  = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19),
                        },
                    }
                },
                new Author()
                {
                    Id    = 7, FirstName = "David", LastName = "Holmes",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 3,
                            Title       = "Java Concurrency in Practice 1st Edition",
                            ISBN        = "7678678676",
                            FrontCover  = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19),
                        },
                    }
                },
                new Author()
                {
                    Id    = 8, FirstName = "Doug", LastName = "Lea",
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id          = 3,
                            Title       = "Java Concurrency in Practice 1st Edition",
                            ISBN        = "7678678676",
                            FrontCover  = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19),
                        },
                    }
                },
                new Author()
                {
                    Id = 9, FirstName = "Harper", LastName = "Lee"
                },
                new Author()
                {
                    Id = 10, FirstName = "Bernard", LastName = "Cornwell"
                },
                new Author()
                {
                    Id = 11, FirstName = "Peter", MiddleName = "H.", LastName = "Wilson"
                }
            }
            .AsQueryable();

            // Categories
            var categories = new List <Category>
            {
                new Category()
                {
                    Id = 1, Name = "Computers & Technology"
                },
                new Category()
                {
                    Id = 2, Name = "Literature & Fiction"
                },
                new Category()
                {
                    Id = 3, Name = "History"
                }
            }
            .AsQueryable();

            // SubCategories
            var subCategories = new List <SubCategory>
            {
                new SubCategory {
                    Id    = 1, Name = "C# Programming", CategoryId = 1, Category = categories.First(c => c.Id == 1),
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id         = 1, // Category: Computers & Technology; Subcategory: C# Programming;
                            Title      = "Learn C# in One Day and Learn It Well: C# for Beginners with Hands-on Project (Learn Coding Fast with Hands-On Project) (Volume 3)",
                            ISBN       = "1518800270",
                            FrontCover = "~/Content/Images/Books/front-covers/1518800270.jpg",
                            Authors    = new List <Author>()
                            {
                                authors.First(a => a.Id == 1)
                            },
                            Description = "If you are a beginning programmer wanting to learn C# .NET programming, this book is the perfect introduction. It is too basic for experienced programmers, but it is just perfect for someone just starting out with C# programming, since it is easy to follow and all the concepts are explained very well.",
                            PublishDate = new DateTime(2015, 10, 27)
                        },
                        new Book()
                        {
                            Id         = 2, // Category: Computers & Technology; Subcategory: C# Programming;
                            Title      = "The C# Player's Guide (2nd Edition)",
                            ISBN       = "0985580127",
                            FrontCover = "~/Content/Images/Books/front-covers/0985580127.jpg",
                            Authors    = new List <Author>()
                            {
                                authors.First(a => a.Id == 2)
                            },
                            Description = "The C# Player's Guide (2nd Edition) is the ultimate guide for people starting out with C#, whether you are new to programming, or an experienced vet. This guide takes you from your journey's beginning, through the most challenging parts of programming in C#, and does so in a way that is casual, informative, and fun. This version of the book is updated for C# 6.0, .NET 4.6, and Visual Studio 2015.",
                            PublishDate = new DateTime(2015, 9, 22)
                        },
                    }
                },
                new SubCategory {
                    Id    = 2, Name = "Java Programming", CategoryId = 1, Category = categories.First(c => c.Id == 1),
                    Books = new List <Book>
                    {
                        new Book()
                        {
                            Id         = 3, // Category: Computers & Technology; Subcategory: Java Programming;
                            Title      = "Java Concurrency in Practice 1st Edition",
                            ISBN       = "7678678676",
                            FrontCover = "~/Content/Images/Books/front-covers/7678678676.jpg",
                            Authors    = new List <Author>()
                            {
                                authors.First(a => a.Id == 3),
                                authors.First(a => a.Id == 4),
                                authors.First(a => a.Id == 5),
                                authors.First(a => a.Id == 6),
                                authors.First(a => a.Id == 7),
                                authors.First(a => a.Id == 8)
                            },
                            Description = "This book will give you a good grounding in concurrent programming in Java.",
                            PublishDate = new DateTime(2006, 5, 19)
                        }
                    }
                },
                new SubCategory {
                    Id = 3, Name = "Classics", CategoryId = 2, Category = categories.First(c => c.Id == 2)
                },
                new SubCategory {
                    Id = 4, Name = "Historical", CategoryId = 2, Category = categories.First(c => c.Id == 2)
                },
                new SubCategory {
                    Id = 5, Name = "Ancient Civilizations", CategoryId = 3, Category = categories.First(c => c.Id == 3)
                },
                new SubCategory {
                    Id = 6, Name = "World", CategoryId = 3, Category = categories.First(c => c.Id == 3)
                },
            }
            .AsQueryable();

            // Books
            var books = new List <Book>
            {
                new Book()
                {
                    Id         = 1, // Category: Computers & Technology; Subcategory: C# Programming;
                    Title      = "Learn C# in One Day and Learn It Well: C# for Beginners with Hands-on Project (Learn Coding Fast with Hands-On Project) (Volume 3)",
                    ISBN       = "1518800270",
                    FrontCover = "~/Content/Images/Books/front-covers/1518800270.jpg",
                    Authors    = new List <Author>()
                    {
                        authors.First(a => a.Id == 1)
                    },
                    Description   = "If you are a beginning programmer wanting to learn C# .NET programming, this book is the perfect introduction. It is too basic for experienced programmers, but it is just perfect for someone just starting out with C# programming, since it is easy to follow and all the concepts are explained very well.",
                    PublishDate   = new DateTime(2015, 10, 27),
                    SubCategories = new List <SubCategory> {
                        subCategories.First(sc => sc.Id == 1)
                    }
                },
                new Book()
                {
                    Id         = 2, // Category: Computers & Technology; Subcategory: C# Programming;
                    Title      = "The C# Player's Guide (2nd Edition)",
                    ISBN       = "0985580127",
                    FrontCover = "~/Content/Images/Books/front-covers/0985580127.jpg",
                    Authors    = new List <Author>()
                    {
                        authors.First(a => a.Id == 2)
                    },
                    Description   = "The C# Player's Guide (2nd Edition) is the ultimate guide for people starting out with C#, whether you are new to programming, or an experienced vet. This guide takes you from your journey's beginning, through the most challenging parts of programming in C#, and does so in a way that is casual, informative, and fun. This version of the book is updated for C# 6.0, .NET 4.6, and Visual Studio 2015.",
                    PublishDate   = new DateTime(2015, 9, 22),
                    SubCategories = new List <SubCategory> {
                        subCategories.First(sc => sc.Id == 1)
                    }
                },
                new Book()
                {
                    Id         = 3, // Category: Computers & Technology; Subcategory: Java Programming;
                    Title      = "Java Concurrency in Practice 1st Edition",
                    ISBN       = "7678678676",
                    FrontCover = "~/Content/Images/Books/front-covers/7678678676.jpg",
                    Authors    = new List <Author>()
                    {
                        authors.First(a => a.Id == 3),
                        authors.First(a => a.Id == 4),
                        authors.First(a => a.Id == 5),
                        authors.First(a => a.Id == 6),
                        authors.First(a => a.Id == 7),
                        authors.First(a => a.Id == 8)
                    },
                    Description   = "This book will give you a good grounding in concurrent programming in Java.",
                    PublishDate   = new DateTime(2006, 5, 19),
                    SubCategories = new List <SubCategory> {
                        subCategories.First(sc => sc.Id == 2)
                    }
                },
                new Book()
                {
                    Id         = 4, // Category: Literature & Fiction; Subcategory: Historical;
                    Title      = "Warriors of the Storm: A Novel (Saxon Tales)",
                    ISBN       = "32830723",
                    FrontCover = "~/Content/Images/Books/front-covers/32830723.jpg",
                    Authors    = new List <Author>()
                    {
                        authors.First(a => a.Id == 10)
                    },
                    Description   = "The ninth installment of Bernard Cornwell’s bestselling series chronicling the epic saga of the making of England, “like Game of Thrones, but real” (The Observer, London)—the basis for The Last Kingdom, the hit BBC America television series.",
                    PublishDate   = new DateTime(2016, 1, 19),
                    SubCategories = new List <SubCategory> {
                        subCategories.First(sc => sc.Id == 4)
                    }
                },
            }
            .AsQueryable();

            var authorsSet = Substitute.For <DbSet <Author>, IQueryable <Author> >();

            ((IQueryable <Author>)authorsSet).Provider.Returns(authors.Provider);
            ((IQueryable <Author>)authorsSet).Expression.Returns(authors.Expression);
            ((IQueryable <Author>)authorsSet).ElementType.Returns(authors.ElementType);
            ((IQueryable <Author>)authorsSet).GetEnumerator().Returns(ci => authors.GetEnumerator());

            var booksSet = Substitute.For <DbSet <Book>, IQueryable <Book> >();

            ((IQueryable <Book>)booksSet).Provider.Returns(books.Provider);
            ((IQueryable <Book>)booksSet).Expression.Returns(books.Expression);
            ((IQueryable <Book>)booksSet).ElementType.Returns(books.ElementType);
            ((IQueryable <Book>)booksSet).GetEnumerator().Returns(ci => books.GetEnumerator());

            var categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();

            ((IQueryable <Category>)categoriesSet).Provider.Returns(categories.Provider);
            ((IQueryable <Category>)categoriesSet).Expression.Returns(categories.Expression);
            ((IQueryable <Category>)categoriesSet).ElementType.Returns(categories.ElementType);
            ((IQueryable <Category>)categoriesSet).GetEnumerator().Returns(ci => categories.GetEnumerator());

            var subcategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            ((IQueryable <SubCategory>)subcategoriesSet).Provider.Returns(subCategories.Provider);
            ((IQueryable <SubCategory>)subcategoriesSet).Expression.Returns(subCategories.Expression);
            ((IQueryable <SubCategory>)subcategoriesSet).ElementType.Returns(subCategories.ElementType);
            ((IQueryable <SubCategory>)subcategoriesSet).GetEnumerator().Returns(subCategories.GetEnumerator());
            subcategoriesSet.Include(Arg.Any <string>()).Returns(ci => subcategoriesSet);

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.Authors.Returns(authorsSet);
            _dbContext.Books.Returns(booksSet);
            _dbContext.Categories.Returns(categoriesSet);
            _dbContext.SubCategories.Returns(subcategoriesSet);
        }
        public void Init()
        {
            var subCategories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1, Name = "New Age", Category = new Category {
                        Id = 1, Name = "History"
                    }
                },
                new SubCategory {
                    Id = 2, Name = "Middle Age", Category = new Category {
                        Id = 1, Name = "History"
                    }
                },
                new SubCategory {
                    Id = 3, Name = "Old Age", Category = new Category {
                        Id = 1, Name = "History"
                    }
                },

                new SubCategory {
                    Id = 4, Name = "C# Programming", Category = new Category {
                        Id = 2, Name = "Programming"
                    }
                },
            }
            .AsQueryable();

            var categories = new List <Category>
            {
                new Category {
                    Id = 1, Name = "History", SubCategories = new List <SubCategory> {
                        subCategories.Single(sc => sc.Id == 1), subCategories.Single(sc => sc.Id == 2), subCategories.Single(sc => sc.Id == 3),
                    }
                },
                new Category {
                    Id = 2, Name = "Programming", SubCategories = new List <SubCategory> {
                        subCategories.Single(sc => sc.Id == 4)
                    }
                },
                new Category {
                    Id = 3, Name = "Mystery"
                },
            }
            .AsQueryable();

            var categoriesSet = Substitute.For <DbSet <Category>, IQueryable <Category> >();

            categoriesSet.Find(Arg.Any <object[]>()).Returns(callinfo =>
            {
                object[] idValues = callinfo.Arg <object[]>();
                if (idValues != null && idValues.Length == 1)
                {
                    int requestedId = (int)idValues[0];
                    return(categories.SingleOrDefault(c => c.Id == requestedId));
                }

                return(null);
            });
            ((IQueryable <Category>)categoriesSet).Provider.Returns(categories.Provider);
            ((IQueryable <Category>)categoriesSet).Expression.Returns(categories.Expression);
            ((IQueryable <Category>)categoriesSet).ElementType.Returns(categories.ElementType);
            ((IQueryable <Category>)categoriesSet).GetEnumerator().Returns(categories.GetEnumerator());

            var subCategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            ((IQueryable <SubCategory>)subCategoriesSet).Provider.Returns(subCategories.Provider);
            ((IQueryable <SubCategory>)subCategoriesSet).Expression.Returns(subCategories.Expression);
            ((IQueryable <SubCategory>)subCategoriesSet).ElementType.Returns(subCategories.ElementType);
            ((IQueryable <SubCategory>)subCategoriesSet).GetEnumerator().Returns(subCategories.GetEnumerator());

            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.Categories.Returns(categoriesSet);
            _dbContext.SubCategories.Returns(subCategoriesSet);
        }
 public GetBooksByTitleQueryHandler(ILibraryDbContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
Пример #17
0
 public CategoriesManagementController(ILibraryDbContext dbContext, ICategoryService categoryService)
     : base(dbContext)
 {
     _categoryService = categoryService;
 }
Пример #18
0
 public UserLoansController(ILibraryDbContext dbContext)
     : base(dbContext)
 {
 }
Пример #19
0
 protected BaseController(ILibraryDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Пример #20
0
 public UnitOfWork(ILibraryDbContext context)
 {
     this.context = context;
 }
Пример #21
0
 public CreateBookCommandHandler(ILibraryDbContext context)
 {
     _context = context;
 }
Пример #22
0
 public UnitOfWork(ILibraryDbContext context)
 {
     this.context = context;
 }
Пример #23
0
 public BooksManagementController(ILibraryDbContext dbContext, IBookService bookService, ILibrarianService librarianService)
     : base(dbContext)
 {
     _bookService      = bookService;
     _librarianService = librarianService;
 }
Пример #24
0
 public RoleManagementService(ILibraryDbContext dbContext, IRoleStore <Role, string> store)
     : base(store)
 {
     _dbContext = dbContext;
 }
Пример #25
0
 public BookDetailsController(ILibraryDbContext dbContext, IBookService bookService)
     : base(dbContext)
 {
     _bookService = bookService;
 }
        public void init()
        {
            var subcateogories = new List <SubCategory>
            {
                new SubCategory {
                    Id = 1
                },
                new SubCategory {
                    Id = 2
                },
                new SubCategory {
                    Id = 3
                }
            };
            var subcateogoriesQueryable = subcateogories.AsQueryable();

            var subcategoryId = 1;
            var book          = new Book
            {
                Id            = 1,
                SubCategories = new List <SubCategory> {
                    subcateogories.FirstOrDefault(sc => sc.Id == subcategoryId)
                }
            };

            var books = new List <Book>
            {
                book
            }
            .AsQueryable();

            var booksSet = Substitute.For <DbSet <Book>, IQueryable <Book> >();

            ((IQueryable <Book>)booksSet).Provider.Returns(books.Provider);
            ((IQueryable <Book>)booksSet).Expression.Returns(books.Expression);
            ((IQueryable <Book>)booksSet).ElementType.Returns(books.ElementType);
            ((IQueryable <Book>)booksSet).GetEnumerator().Returns(books.GetEnumerator());

            var subcategoriesSet = Substitute.For <DbSet <SubCategory>, IQueryable <SubCategory> >();

            ((IQueryable <SubCategory>)subcategoriesSet).Provider.Returns(subcateogoriesQueryable.Provider);
            ((IQueryable <SubCategory>)subcategoriesSet).Expression.Returns(subcateogoriesQueryable.Expression);
            ((IQueryable <SubCategory>)subcategoriesSet).ElementType.Returns(subcateogoriesQueryable.ElementType);
            ((IQueryable <SubCategory>)subcategoriesSet).GetEnumerator().Returns(subcateogoriesQueryable.GetEnumerator());

            // Category to remove.
            var subcategoryIdRemovable    = 2;
            var subcategoryIdNotRemovable = 1;

            // Mock Remove method.
            subcategoriesSet.When(x => x.Remove(subcateogories.FirstOrDefault(c => c.Id == subcategoryIdRemovable)))
            .Do(x => subcateogories.Remove(subcateogories.FirstOrDefault(c => c.Id == subcategoryIdRemovable)));

            subcategoriesSet.Find(subcategoryIdRemovable).Returns(x => subcateogories.Find(sc => sc.Id == subcategoryIdRemovable));
            subcategoriesSet.Find(subcategoryIdNotRemovable).Returns(x => subcateogories.Find(sc => sc.Id == subcategoryIdNotRemovable));


            _dbContext = Substitute.For <ILibraryDbContext>();
            _dbContext.SubCategories.Returns(subcategoriesSet);
            _dbContext.Books.Returns(booksSet);
        }
Пример #27
0
 public HomeController(ILibraryDbContext dbContext, IBookService bookService)
     : base(dbContext)
 {
     _bookService = bookService;
 }
Пример #28
0
 public BookService(ILibraryDbContext dbContext, ILibrarianService librarianService)
 {
     _dbContext        = dbContext;
     _librarianService = librarianService;
 }
Пример #29
0
 public LibraryService(ILibraryDbContext libraryDbContext)
 {
     _libraryDbContext = libraryDbContext;
 }
Пример #30
0
 public Repository(ILibraryDbContext context)
 {
     _context = context;
     _dbSet   = (DbSet <TEntity>)context.Query <TEntity>();
 }
Пример #31
0
 public LibrarianController(ILibraryDbContext dbContext, ILibrarianService librarianService)
     : base(dbContext)
 {
     _librarianService = librarianService;
 }
Пример #32
0
 public LibrarySampleData(LibraryDbContext context)
 {
     _context = context;
 }
Пример #33
0
 public LibraryService(ILibraryDbContext libraryDbContext)
 {
     _libraryDbContext = libraryDbContext;            
 }