public void CreateCreatesCorrectly()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            int memberId;
            int volumeId;

            using (var context = new GTLContext(options))
            {
                context.Add(_member);
                context.Add(_volume);

                context.SaveChanges();

                memberId = _member.MemberId;
                volumeId = _volume.VolumeId;
            }

            // action
            using (var context = new GTLContext(options))
            {
                var member = context.Members.Find(memberId);
                var volume = context.Volumes.Find(volumeId);

                var controller = ControllerFactory.CreateLoanController(context);
                var loan       = controller.Create(member, volume);

                // assertion
                var today   = DateTime.Today;
                var dueDate = DateTime.Today.AddDays(LoanController.LendingPeriod);

                Assert.That(loan, Has
                            .Property(nameof(Loan.Member)).Not.Null.And
                            .Property(nameof(Loan.Volume)).Not.Null.And
                            .Property(nameof(Loan.LoanDate)).EqualTo(today).And
                            .Property(nameof(Loan.DueDate)).EqualTo(dueDate).And
                            .Property(nameof(Loan.ReturnedDate)).Null.And
                            .Property(nameof(Loan.Extensions)).EqualTo(0)
                            );
            }
        }