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

            // add volumes to db
            using (var context = new GTLContext(options))
            {
                context.AddRange(volumes);
                context.SaveChanges();
            }

            // delete volume
            using (var context = new GTLContext(options))
            {
                var volumeController = ControllerFactory.CreateVolumeController(context);

                var volumeToDelete = volumes[1];

                volumeController.Delete(volumeToDelete);

                var fetchedVolume  = context.Volumes.Find(volumeToDelete.VolumeId);
                var fetchedVolumes = context.Volumes.ToList();

                Assert.Multiple(() =>
                {
                    // assert that the fetched volume is null - deleted from db
                    Assert.That(fetchedVolume, Is.Null);
                    // assert that number of volumes decreased by 1
                    Assert.AreEqual(fetchedVolumes.Count, volumes.Count - 1);
                });
            }
        }
Exemplo n.º 2
0
        public void UpdateMemberWithNewAddress()
        {
            MethodBase method = MethodBase.GetCurrentMethod();
            DbContextOptions <GTLContext> options = new DbContextOptionsBuilder <GTLContext>()
                                                    .UseInMemoryDatabase(method.Name).EnableSensitiveDataLogging(true)
                                                    .Options;

            using (var context = new GTLContext(options))
            {
                //setup
                IMemberController mController = ControllerFactory.CreateMemberController(context);
                InsertDummyData(context);

                var member = mController.Create(ssn, fName, lName, homeAddres, campusAddress, zip, homeAddressAdditionalInfo, mTypes);
                IAddressController aController = ControllerFactory.CreateAddressController(context);

                var newAddress = aController.Create("Blaviken street", "Be careful of the Dog", zip);
                //Action
                mController.Insert(member);
                //--update the member with new info, find it again make sure they are actually updated.
                var updatedMember = mController.FindByName(member.FName);
                updatedMember.HomeAddress = newAddress;
                mController.Update(updatedMember);
                member = mController.FindByName(member.FName);
                Assert.That(member, Is.EqualTo(updatedMember));
            }
        }
Exemplo n.º 3
0
        public void CreateCreatesCorrectAddressInstance()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var context = new GTLContext(options))
            {
                context.Add(zip);
                context.SaveChanges();
            }

            // action
            using (var context = new GTLContext(options))
            {
                var addressController = ControllerFactory.CreateAddressController(context);
                var address           = addressController.Create(street, additionalInfo, zip.Code);

                // assertion
                Assert.That(address, Has
                            .Property(nameof(Address.Street)).EqualTo(street).And
                            .Property(nameof(Address.AdditionalInfo)).EqualTo(additionalInfo).And
                            .Property(nameof(Address.Zip)));
            }
        }
Exemplo n.º 4
0
        public void InsertInsertsCorrectly()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            using (var context = new GTLContext(options))
            {
                var authorController = ControllerFactory.CreateAuthorController(context);
                var author           = new Author {
                    FirstName = authorFirstName, LastName = authorLastName
                };

                authorController.Insert(author);
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var fetchedAuthor = context.Authors
                                    .FirstOrDefault(a => a.FirstName == authorFirstName && a.LastName == authorLastName);

                Assert.That(fetchedAuthor, Has
                            .Property(nameof(Author.FirstName)).EqualTo(authorFirstName).And
                            .Property(nameof(Author.LastName)).EqualTo(authorLastName));
            }
        }
        public void InsertInsertsCorrectly()
        {
            var methodName = MethodBase.GetCurrentMethod().Name;
            var options    = new DbContextOptionsBuilder <GTLContext>().UseInMemoryDatabase(methodName).Options;

            var materialId        = 1;
            var homeLocationId    = 1;
            var currentLocationId = 1;

            using (var context = new GTLContext(options))
            {
                var volumeController = ControllerFactory.CreateVolumeController(context);
                var volume           = new Volume {
                    MaterialId = materialId, HomeLocationId = homeLocationId, CurrentLocationId = currentLocationId
                };
                volumeController.Insert(volume);
            }

            using (var context = new GTLContext(options))
            {
                var insertedVolume = context.Volumes.FirstOrDefault(v => v.MaterialId == materialId && v.CurrentLocationId == currentLocationId && v.HomeLocationId == homeLocationId);
                Assert.That(insertedVolume, Has
                            .Property(nameof(Volume.MaterialId))
                            .EqualTo(materialId)
                            .And
                            .Property(nameof(Volume.HomeLocationId))
                            .EqualTo(homeLocationId)
                            .And
                            .Property(nameof(Volume.CurrentLocationId))
                            .EqualTo(currentLocationId)
                            );
            }
        }
Exemplo n.º 6
0
        public void FindByIdFindsAnExistingAuthor()
        {
            // setup
            int authorId;
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            using (var context = new GTLContext(options))
            {
                var author = new Author {
                    FirstName = authorFirstName, LastName = authorLastName
                };
                context.Add(author);
                context.SaveChanges();
                authorId = author.AuthorId;
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var authorController = ControllerFactory.CreateAuthorController(context);
                var fetchedAuthor    = authorController.FindByID(authorId);

                Assert.That(fetchedAuthor, Has
                            .Property(nameof(Author.FirstName)).EqualTo(authorFirstName).And
                            .Property(nameof(Author.LastName)).EqualTo(authorLastName));
            }
        }
Exemplo n.º 7
0
        public void UpdateMembertypeOnMember()
        {
            MethodBase method = MethodBase.GetCurrentMethod();
            DbContextOptions <GTLContext> options = new DbContextOptionsBuilder <GTLContext>()
                                                    .UseInMemoryDatabase(method.Name).EnableSensitiveDataLogging(true)
                                                    .Options;
            MemberType student = new MemberType()
            {
                TypeName = "Student"
            };
            MemberType staff = new MemberType()
            {
                TypeName = "Staff"
            };
            List <MemberType> memberTypes = new List <MemberType>();

            memberTypes.Add(student);

            using (var context = new GTLContext(options))
            {
                //Basic environment.
                IMemberController mController = ControllerFactory.CreateMemberController(context);
                InsertDummyData(context);
                var member = mController.Create(ssn, fName, lName, homeAddres, campusAddress, zip, homeAddressAdditionalInfo, memberTypes);

                mController.Insert(member);
                memberTypes.Add(staff);
                //Actions
                mController.UpdateMembershipsOnMember(member, memberTypes);
                mController.Update(member);
                var updatedMember = mController.FindByName(member.FName);
                //Assertations!
                Assert.That(member, Is.EqualTo(updatedMember));
            }
        }
Exemplo n.º 8
0
        public void FindByName()
        {
            MethodBase method = MethodBase.GetCurrentMethod();
            DbContextOptions <GTLContext> options = new DbContextOptionsBuilder <GTLContext>()
                                                    .UseInMemoryDatabase(method.Name).EnableSensitiveDataLogging(true)
                                                    .Options;

            using (var context = new GTLContext(options))
            {
                //as long as dbContext is needed for initializing controller. this can't easily be extracted - so it must be in each method.
                IMemberController mController = ControllerFactory.CreateMemberController(context);
                InsertDummyData(context);

                var    member    = mController.Create(ssn, fName, lName, homeAddres, campusAddress, zip, homeAddressAdditionalInfo, mTypes);
                string firstName = "Bodacious";
                string lastName  = "Booty";
                member.FName = firstName;
                member.LName = lastName;
                //currently not inserting data for some reason.
                //action
                mController.Insert(member);
                //Assertation
                Assert.That(member, Has.
                            Property("FName").EqualTo(firstName)
                            .And.Property("LName").EqualTo(lastName));
                var foundMember = mController.FindByName(member.FName);
                Assert.That(member, Is.EqualTo(foundMember));
            };
        }
Exemplo n.º 9
0
        public void FindAllReturnsAPopulatedList()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var context = new GTLContext(options))
            {
                var material = new Material
                {
                    Isbn        = _isbn,
                    Title       = _title,
                    Description = _description,
                    Lendable    = _lendable,
                    Language    = _language,
                    Type        = _materialType,
                };

                context.Materials.Add(material);
                context.SaveChanges();
            }

            // action
            using (var context = new GTLContext(options))
            {
                var controller   = ControllerFactory.CreateMaterialController(context);
                var materialList = controller.FindAll();

                Assert.That(materialList, Is.Not.Empty);
            }
        }
Exemplo n.º 10
0
        public void AddMemberShipToMember()
        {
            MethodBase method = MethodBase.GetCurrentMethod();
            DbContextOptions <GTLContext> options = new DbContextOptionsBuilder <GTLContext>()
                                                    .UseInMemoryDatabase(method.Name).EnableSensitiveDataLogging(true)
                                                    .Options;

            using (var context = new GTLContext(options))
            {
                IMemberController mController = ControllerFactory.CreateMemberController(context);
                InsertDummyData(context);
                MemberType teachingAssistant = new MemberType()
                {
                    TypeName = "Teaching Assistant"
                };
                var member = mController.Create(ssn, fName, lName, homeAddres, campusAddress, zip, homeAddressAdditionalInfo, mTypes);
                mController.Insert(member);

                mTypes.Add(teachingAssistant);
                member.Memberships = mController.UpdateMembershipsOnMember(member, mTypes);
                mController.Update(member);
                Assert.That(member,
                            Is.EqualTo(mController.FindByName(member.FName)));
            }
        }
Exemplo n.º 11
0
        public void CreateCreatesCorrectly()
        {
            // setup
            var bookType = new MaterialType {
                Type = "Book"
            };
            var programmingSubject = new MaterialSubject {
                SubjectName = "Programming"
            };
            var author = new Author {
                FirstName = "Nikola", LastName = "Velichkov"
            };
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var context = new GTLContext(options))
            {
                context.Add(bookType);
                context.Add(programmingSubject);
                context.Add(author);

                context.SaveChanges();
            }

            // action
            using (var context = new GTLContext(options))
            {
                var controller = ControllerFactory.CreateMaterialController(context);
                var material   = controller.Create(
                    _isbn,
                    _title,
                    _language,
                    _lendable,
                    _description,
                    bookType,
                    new List <MaterialSubject> {
                    programmingSubject
                },
                    new List <Author> {
                    author
                }
                    );
                // assertion

                Assert.That(material, Has
                            .Property(nameof(Material.Isbn)).EqualTo(_isbn).And
                            .Property(nameof(Material.Title)).EqualTo(_title).And
                            .Property(nameof(Material.Language)).EqualTo(_language).And
                            .Property(nameof(Material.Lendable)).EqualTo(_lendable).And
                            .Property(nameof(Material.Description)).EqualTo(_description).And
                            .Property(nameof(Material.Type)).And
                            .Property(nameof(Material.MaterialSubjects)).And
                            .Property(nameof(Material.MaterialAuthors)));
            }
        }
Exemplo n.º 12
0
        public void UpdateUpdatesCorrectly()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            int materialId;
            var newTitle    = "Some other title";
            var newLanguage = "Danish";

            using (var context = new GTLContext(options))
            {
                var material = new Material
                {
                    Isbn        = _isbn,
                    Title       = _title,
                    Language    = _language,
                    Lendable    = _lendable,
                    Description = _description,
                    Type        = _materialType,
                };

                context.Add(material);
                context.SaveChanges();
                materialId = material.MaterialId;
            }

            // action
            using (var context = new GTLContext(options))
            {
                var controller = ControllerFactory.CreateMaterialController(context);
                var material   = context.Materials.Find(materialId);
                material.Title    = newTitle;
                material.Language = newLanguage;

                controller.Update(material);
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var material = context.Materials.Find(materialId);
                Assert.That(material, Has
                            .Property(nameof(Material.Isbn)).EqualTo(_isbn).And
                            .Property(nameof(Material.Title)).EqualTo(newTitle).And
                            .Property(nameof(Material.Language)).EqualTo(newLanguage).And
                            .Property(nameof(Material.Lendable)).EqualTo(_lendable).And
                            .Property(nameof(Material.Description)).EqualTo(_description).And
                            .Property(nameof(Material.Type))
                            );
            }
        }
Exemplo n.º 13
0
        private void InsertDummyData(GTLContext context)
        {
            //this should be passed by reference, and as such work with differnet objects without carrying the data over.
            ZipCode zipCode = new ZipCode
            {
                City = "Georgia",
                Code = zip
            };

            context.ZipCodes.Add(zipCode);
            context.MemberTypes.AddRange(mTypes);
            context.SaveChanges();
        }
Exemplo n.º 14
0
        public void InsertThrowsArgumentNullExceptionWithNullAuthorParam()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new GTLContext(options);
            var authorController = ControllerFactory.CreateAuthorController(context);

            // assertion
            Assert.Throws <ArgumentNullException>(() => authorController.Insert(null));
        }
Exemplo n.º 15
0
        public void FindAllReturnsAnEmptyList()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // don't add any materials
            using var context = new GTLContext(options);
            var controller   = ControllerFactory.CreateMaterialController(context);
            var materialList = controller.FindAll();

            Assert.That(materialList, Is.Empty);
        }
Exemplo n.º 16
0
        public void FindByIdReturnsNullWhenMaterialNotFound()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            using var context = new GTLContext(options);
            var controller = ControllerFactory.CreateMaterialController(context);
            var material   = controller.FindByID(42);

            Assert.That(material, Is.Null);
        }
Exemplo n.º 17
0
        public void CreateThrowsAnArgumentExceptionWithAZipThatDoesNotExist()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            using var context = new GTLContext(options);
            var addressController = ControllerFactory.CreateAddressController(context);

            // assertion
            Assert.Throws <ArgumentException>(() =>
                                              addressController.Create(street, additionalInfo, zip.Code));
        }
Exemplo n.º 18
0
        public void FindByIdDoesNotFindAnInstance()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            using var context = new GTLContext(options);
            var addressController = ControllerFactory.CreateAddressController(context);
            // some random number, doesn't matter what, DB should be empty
            var address = addressController.FindByID(42);

            Assert.That(address, Is.Null);
        }
Exemplo n.º 19
0
        public void CreateThrowsArgumentExceptionWithEmptyFirstNameArgument()
        {
            // setup
            authorFirstName = "";
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new GTLContext(options);
            var authorController = ControllerFactory.CreateAuthorController(context);

            // assertion
            Assert.Throws <ArgumentException>(() =>
                                              authorController.Create(authorFirstName, authorLastName));
        }
Exemplo n.º 20
0
        public void FindByIdReturnsNullOnANonExistingAuthor()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            using var context = new GTLContext(options);
            var authorController = ControllerFactory.CreateAuthorController(context);
            // some random number, doesn't matter what
            var fetchedAuthor = authorController.FindByID(11);

            // assertion
            Assert.That(fetchedAuthor, Is.Null);
        }
Exemplo n.º 21
0
        public void GetMembershipsOfMember()
        {
            MethodBase method = MethodBase.GetCurrentMethod();
            DbContextOptions <GTLContext> options = new DbContextOptionsBuilder <GTLContext>()
                                                    .UseInMemoryDatabase(method.Name).EnableSensitiveDataLogging(true)
                                                    .Options;

            using (var context = new GTLContext(options))
            {
                IMemberController mController = ControllerFactory.CreateMemberController(context);
                InsertDummyData(context);
                var member = mController.Create(ssn, fName, lName, homeAddres, campusAddress, zip, homeAddressAdditionalInfo, mTypes);
                mController.Insert(member);
                //This only checks that the numbers of memberships on the member is correct. It does not check what the individual ones are.
                Assert.That(member.Memberships.Count, Is.EqualTo(mTypes.Count));
            }
        }
Exemplo n.º 22
0
        public void FindMaterialsFetchesMaterialsWithMultipleAuthors()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .UseLazyLoadingProxies()
                          .Options;

            var authorOne = new Author {
                FirstName = authorFirstName, LastName = authorLastName
            };
            var authorTwo = new Author {
                FirstName = "Gergana", LastName = "Petkova"
            };

            // action
            // add authors to materials
            materials.ForEach(material =>
            {
                material.MaterialAuthors = new List <MaterialAuthor>
                {
                    new MaterialAuthor {
                        Author = authorOne, Material = material
                    },
                    new MaterialAuthor {
                        Author = authorTwo, Material = material
                    }
                };
            });

            using (var context = new GTLContext(options))
            {
                context.AddRange(materials);
                context.SaveChanges();
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var authorController = ControllerFactory.CreateAuthorController(context);
                var fetchedAuthor    = context.Authors.FirstOrDefault(a => a.FirstName == authorOne.FirstName);

                var fetchedMaterials = authorController.FindMaterials(fetchedAuthor);
                Assert.That(fetchedMaterials, Has.Exactly(materials.Count).Items);
            }
        }
Exemplo n.º 23
0
        // should be more tests with the same conditions for different properties of Material
        // (Isbn, Title, Language, Description, Lendable?)
        public void CreateThrowsAnArgumentNullExceptionOnNullOrEmptyTitle()
        {
            // setup
            var bookType = new MaterialType {
                Type = "Book"
            };
            var programmingSubject = new MaterialSubject {
                SubjectName = "Programming"
            };
            var author = new Author {
                FirstName = "Nikola", LastName = "Velichkov"
            };
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var context = new GTLContext(options))
            {
                context.Add(bookType);
                context.Add(programmingSubject);
                context.Add(author);

                context.SaveChanges();
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var controller = ControllerFactory.CreateMaterialController(context);
                Assert.Throws <ArgumentNullException>(() =>
                                                      controller.Create(
                                                          _isbn,
                                                          "",
                                                          _language,
                                                          _lendable,
                                                          _description,
                                                          bookType,
                                                          new List <MaterialSubject> {
                    programmingSubject
                },
                                                          new List <Author> {
                    author
                }
                                                          ));
            }
        }
Exemplo n.º 24
0
        public void CreateCreatesCorrectAuthorInstance()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new GTLContext(options);
            var authorController = ControllerFactory.CreateAuthorController(context);

            // action
            var author = authorController.Create(authorFirstName, authorLastName);

            // assertion
            Assert.That(author, Has
                        .Property(nameof(Author.FirstName)).EqualTo(authorFirstName).And
                        .Property(nameof(Author.LastName)).EqualTo(authorLastName));
        }
        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)
                            );
            }
        }
        public void CreateWithNonExistingDataThrowsArgumentException()
        {
            var methodName = MethodBase.GetCurrentMethod().Name;
            var options    = new DbContextOptionsBuilder <GTLContext>().UseInMemoryDatabase(methodName).Options;

            // There is no material and address with the following IDs in the DB
            var materialId        = 1;
            var homeLocationId    = 1;
            var currentLocationId = 1;

            using (var context = new GTLContext(options))
            {
                var volumeController = ControllerFactory.CreateVolumeController(context);

                // Since there is no address and material in the DB, creating a volume with those
                // references should throw and exception
                Assert.Throws <ArgumentException>(() => volumeController.Create(materialId, homeLocationId, currentLocationId));
            }
        }
        public void CreateCreatesCorrectly()
        {
            var methodName = MethodBase.GetCurrentMethod().Name;
            var options    = new DbContextOptionsBuilder <GTLContext>().UseInMemoryDatabase(methodName).Options;

            // setup
            using (var context = new GTLContext(options))
            {
                var zip = new ZipCode {
                    City = "Aalborg", Code = 9000
                };
                // zip has to be saved in db in order for the address to be created
                context.Add(zip);
                context.SaveChanges();

                var homeAddress = new Address {
                    Street = "Main road 4", AdditionalInfo = "4.floor, 10", Zip = zip
                };
                var currentAddress = new Address {
                    Street = "Library road 5", AdditionalInfo = "1.floor", Zip = zip
                };
                var material = new Material {
                    Isbn = "1234321", Title = "Mat title", Description = "A description", Language = "English", Lendable = true
                };

                context.Add(homeAddress);
                context.Add(currentAddress);
                context.Add(material);
                context.SaveChanges();

                var volumeController = ControllerFactory.CreateVolumeController(context);

                var createdVolume = volumeController.Create(materialId: material.MaterialId, homeLocationId: homeAddress.AddressId, currentLocationId: currentAddress.AddressId);

                Assert.Multiple(() =>
                {
                    Assert.AreEqual(createdVolume.Material.MaterialId, material.MaterialId);
                    Assert.AreEqual(createdVolume.HomeLocation.AddressId, homeAddress.AddressId);
                    Assert.AreEqual(createdVolume.CurrentLocation.AddressId, currentAddress.AddressId);
                });
            }
        }
Exemplo n.º 28
0
        public void InsertMemberIntoDatabase()
        {
            MethodBase method = MethodBase.GetCurrentMethod();
            DbContextOptions <GTLContext> options = new DbContextOptionsBuilder <GTLContext>()
                                                    .UseInMemoryDatabase(method.Name).EnableSensitiveDataLogging(true)
                                                    .Options;

            using (var context = new GTLContext(options))
            {
                IMemberController mController = ControllerFactory.CreateMemberController(context);
                //Currently only inserting for the first method calling it.
                InsertDummyData(context);

                var member = mController.Create(ssn, fName, lName, homeAddres, campusAddress, zip, homeAddressAdditionalInfo, mTypes);
                mController.Insert(member);

                Assert.That(member, Has.Property("FName").EqualTo(fName).And.Property("LName").EqualTo(lName)
                            );
            }
        }
Exemplo n.º 29
0
        public void FindByIdFindsAnExistingMaterial()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            // action
            int materialId;

            using (var context = new GTLContext(options))
            {
                var material = new Material
                {
                    Isbn        = _isbn,
                    Title       = _title,
                    Language    = _language,
                    Lendable    = _lendable,
                    Description = _description,
                    Type        = _materialType,
                };
                context.Add(material);
                context.SaveChanges();
                materialId = material.MaterialId;
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var controller = ControllerFactory.CreateMaterialController(context);
                var material   = controller.FindByID(materialId);

                Assert.That(material, Has
                            .Property(nameof(Material.Isbn)).EqualTo(_isbn).And
                            .Property(nameof(Material.Title)).EqualTo(_title).And
                            .Property(nameof(Material.Language)).EqualTo(_language).And
                            .Property(nameof(Material.Lendable)).EqualTo(_lendable).And
                            .Property(nameof(Material.Description)).EqualTo(_description).And
                            .Property(nameof(Material.Type)));
            }
        }
Exemplo n.º 30
0
        public void DeleteDeletesCorrectly()
        {
            // setup
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            int materialId;

            using (var context = new GTLContext(options))
            {
                var material = new Material
                {
                    Isbn        = _isbn,
                    Title       = _title,
                    Language    = _language,
                    Lendable    = _lendable,
                    Description = _description,
                    Type        = _materialType,
                };

                context.Add(material);
                context.SaveChanges();
                materialId = material.MaterialId;
            }

            // action
            using (var context = new GTLContext(options))
            {
                var controller = ControllerFactory.CreateMaterialController(context);
                var material   = context.Materials.Find(materialId);
                controller.Delete(material);
            }

            // assertion
            using (var context = new GTLContext(options))
            {
                var material = context.Materials.Find(materialId);
                Assert.That(material, Is.Null);
            }
        }