Exemple #1
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));
            }
        }
Exemple #2
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)));
            }
        }
Exemple #3
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);
        }
Exemple #4
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));
        }
Exemple #5
0
        public void CreateThrowsAnArgumentOutOfRangeExceptionWithEmptyAdditionalInfoParam()
        {
            // setup
            additionalInfo = "";
            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);

                // assertion
                Assert.Throws <ArgumentOutOfRangeException>(() =>
                                                            addressController.Create(street, additionalInfo, zip.Code));
            }
        }
Exemple #6
0
        public void FindByIdFindsAnAddressInstance()
        {
            // setup
            int addressId;
            var options = new DbContextOptionsBuilder <GTLContext>()
                          .UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var context = new GTLContext(options))
            {
                var address = new Address
                {
                    AdditionalInfo = additionalInfo,
                    Street         = street,
                    Zip            = zip,
                };

                context.Add(address);
                context.SaveChanges();

                addressId = address.AddressId;
            }

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

                // assertion
                Assert.That(address, Has
                            .Property(nameof(Address.Street)).EqualTo(street).And
                            .Property(nameof(Address.AdditionalInfo)).EqualTo(additionalInfo).And
                            .Property(nameof(Address.Zip)));
            }
        }
 public AddressController(GTLContext context)
 {
     addressController = ControllerFactory.CreateAddressController(context);
 }