コード例 #1
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)));
            }
        }
コード例 #2
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));
            }
        }
コード例 #3
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));
            }
        }
コード例 #4
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));
            };
        }
コード例 #5
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));
            }
        }
コード例 #6
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)
                            );
            }
        }
コード例 #7
0
        public void DeleteMemberFromDatabase()
        {
            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);

                //remove the member again. This crurrently doesn't work due to a lack of cascacing action.
                mController.Delete(member);
                var foundMember = mController.FindByName(member.FName);
                //A null should have been returned as the member doesn't exist.
                Assert.IsNull(foundMember);
            }
        }
コード例 #8
0
 public MemberController(GTLContext context)
 {
     mController = ControllerFactory.CreateMemberController(context);
 }