示例#1
0
        public void UpdateApartment_RegularValues_OkResults()
        {
            //Arrange
            var apt = new Mock <IApartment>();

            apt.SetupGet(a => a.Id).Returns(4);
            apt.SetupGet(a => a.BuildingId).Returns(1);
            apt.SetupGet(a => a.FacingDirection).Returns(model.FacingDirection);
            apt.SetupGet(a => a.Level).Returns(model.Level);
            apt.SetupGet(a => a.Number).Returns(model.Number);
            apt.SetupGet(a => a.TenantsAllowed).Returns(model.TenantsAllowed);

            facade.Setup(
                f => f.UpdateApartment(model.Id, model.Level, model.Number, model.TenantsAllowed, model.FacingDirection, "3445")).Returns(apt.Object);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.UpdateApartment(model);

            //Assert
            Assert.NotNull(result);

            var okresult = Assert.IsType <OkNegotiatedContentResult <GenericResponse> >(result);

            Assert.Equal(true, okresult.Content.IsSuccess);
        }
示例#2
0
        public override bool Run()
        {
            try
            {
                //Active Family
                if (base.SelectedObjects != null && base.SelectedObjects.Count > 0)
                {
                    ApartmentFamily selectedFamily = base.SelectedObjects[0] as ApartmentFamily;


                    if (selectedFamily != null)
                    {
                        ApartmentController.LoadActiveHousehold(selectedFamily, base.Target);
                        base.Target.StartUpOrSwitch();
                    }
                }
            }

            catch (System.Exception ex)
            {
                CommonMethods.PrintMessage("Interaction SetActiveFamily: " + ex.Message);
            }

            return(true);
        }
示例#3
0
        public async Task AddApartmentSuccessful()
        {
            var context = new POAMDbContext();

            RemoveUser(context);

            var user = CreateUser(context);

            Authentication.Instance.UserLogin(user);

            RemoveApartment(context, "DummyBuilding");

            var apartment = GenerateApartment();

            var apartmentController = new ApartmentController(context);

            var result = await apartmentController.AddApartment(apartment);

            var existingApartment = context.Apartment.FirstOrDefault(a => a.Building == "DummyBuilding");


            Assert.NotNull(existingApartment);
            var redirectResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.NotNull(redirectResult);
            Assert.Equal("MainPage", redirectResult.ActionName);

            Authentication.Instance.Logout();
            RemoveApartment(context, "DummyBuilding");
        }
示例#4
0
        public override bool Run()
        {
            try
            {
                ApartmentController.CleanupFamily(this.Target);

                string familyName = CommonMethods.ShowDialogue(CommonMethods.LocalizeString("FamilyName", new object[0]), CommonMethods.LocalizeString("EnterFamilyName", new object[0]), string.Empty);

                if (!string.IsNullOrEmpty(familyName))
                {
                    string familyFunds = CommonMethods.ShowDialogue(CommonMethods.LocalizeString("FamilyFunds", new object[0]), CommonMethods.LocalizeString("EnterFamilyFunds", new object[0]), "0");

                    if (!string.IsNullOrEmpty(familyFunds))
                    {
                        string rent = CommonMethods.ShowDialogue(CommonMethods.LocalizeString("Rent", new object[0]), CommonMethods.LocalizeString("EnterRent", new object[0]), "0");

                        if (!string.IsNullOrEmpty(rent))
                        {
                            //Sims and pets
                            List <SimDescription> residents = null;

                            List <PhoneSimPicker.SimPickerInfo> homeles = CommonMethods.ShowHomelesSims(base.Actor, base.Target.LotCurrent, base.Target.Families);

                            List <PhoneSimPicker.SimPickerInfo> list3 = DualPaneSimPicker.Show(homeles, new List <PhoneSimPicker.SimPickerInfo>(), CommonMethods.LocalizeString("Residents", new object[0]), CommonMethods.LocalizeString("AvailableSims", new object[0]));
                            if (list3 != null)
                            {
                                residents = list3.ConvertAll <SimDescription>(new Converter <PhoneSimPicker.SimPickerInfo, SimDescription>(CommonDoor.LockDoor.SimPickerInfoToSimDescription));
                            }

                            //Minor Pets
                            List <MinorPet> minorPetList = new List <MinorPet>();
                            if (CommonMethods.ReturnMinorPets(this.Target).Count > 0)
                            {
                                List <ObjectPicker.RowInfo> homelessPets = CommonMethods.ReturnMinorPetsAsRowInfo(CommonMethods.ReturnHomelessPets(this.Target));
                                List <ObjectPicker.RowInfo> list4        = DualPanelMinorPets.Show(homelessPets, new List <ObjectPicker.RowInfo>(), CommonMethods.LocalizeString("ResidentPets", new object[0]), CommonMethods.LocalizeString("AvailableMinorPets", new object[0]));

                                if (list4 != null)
                                {
                                    foreach (var item in list4)
                                    {
                                        minorPetList.Add(item.Item as MinorPet);
                                    }
                                }
                            }

                            //Create Family
                            if (residents != null)
                            {
                                this.Target.Families.Add(ApartmentController.CreateFamily(familyName, familyFunds, rent, residents, minorPetList, Target.LotCurrent.Household));
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                CommonMethods.PrintMessage("Create Family: " + ex.Message);
            }
            return(true);
        }
示例#5
0
        public async Task MainPageNotLoggedIn()
        {
            var context = new POAMDbContext();

            var apartmentController = new ApartmentController(context);

            var result = await apartmentController.MainPage();

            var redirectResult = Assert.IsType <RedirectResult>(result);

            Assert.NotNull(redirectResult);
            Assert.Equal("~/Home/Index", redirectResult.Url);
        }
示例#6
0
        /// <summary>
        /// Merge family and if this is the only object, also delete alarm
        /// </summary>
        public override void Dispose()
        {
            base.Dispose();

            ApartmentController.ResetLot(this);

            //If no more objects exist, remove alarm
            List <Controller> cList = new List <Controller>(Sims3.Gameplay.Queries.GetObjects <Controller>());

            if (cList == null || (cList != null && cList.Count == 0))
            {
                AlarmManager.Global.RemoveAlarm(this.mBills);
            }
        }
示例#7
0
        /// <summary>
        /// Start up things when the game is loaded or a new controller is added
        /// </summary>
        public void StartUpOrSwitch()
        {
            try
            {
                //Only do this part for the active family
                if (this.LotCurrent.Household != null && this.LotCurrent.Household.IsActive)
                {
                    // List<Abstracts.Door> doors = ApartmentController.ReturnLockedDoors(this);

                    //set the active households rent
                    ApartmentFamily activeFamily = this.Families.Find(
                        delegate(ApartmentFamily f) { return(f.IsActive == true); });
                    if (activeFamily != null)
                    {
                        if (firstLoad)
                        {
                            firstLoad = false;

                            if (ControllerSettings.alwaysDisableRoommateService)
                            {
                                //Event Hanlders
                                World.OnAddLotPostLoadCallback += new System.EventHandler(World_OnWorldQuitEventHandler);

                                ApartmentController.StopAcceptingRoommates();
                            }
                            //  ApartmentController.LoadActiveHousehold(activeFamily, this);
                        }
                    }
                }

                //Handle rent payment
                DaysOfTheWeek   daysOfTheWeek = DaysOfTheWeek.None;
                DaysOfTheWeek[] array         = Mailbox.kBillingDaysOfWeek;
                for (int i = 0; i < array.Length; i++)
                {
                    DaysOfTheWeek daysOfTheWeek2 = array[i];
                    daysOfTheWeek |= daysOfTheWeek2;
                }

                if (this.mBills == AlarmHandle.kInvalidHandle)
                {
                    this.mBills = AlarmManager.Global.AddAlarmDay(ControllerSettings.timeOfRent, ControllerSettings.rentDay, new AlarmTimerCallback(RentAlarm), "anisBillAndRentAlarm", AlarmType.NeverPersisted, null);
                }
            }
            catch (System.Exception ex)
            {
                CommonMethods.PrintMessage("bill handling: " + ex.Message);
            }
        }
示例#8
0
        public override bool Run()
        {
            try
            {
                if (CommonMethods.ShowConfirmationDialog(CommonMethods.LocalizeString("ResetLotDescription", new object[0])))
                {
                    ApartmentController.ResetLot(this.Target);
                }
            }
            catch (System.Exception ex)
            {
                CommonMethods.PrintMessage("ResetLot: " + ex.Message);
            }

            return(true);
        }
        public void FetchApartmentBuilding_RegularValues_OkResults()
        {
            //Arrange
            var apt = new Mock <IApartment>();

            apt.SetupGet(a => a.Id).Returns(2);

            var aptNew = new Mock <IApartment>();

            aptNew.SetupGet(a => a.Id).Returns(3);

            var aptlist = new List <IApartment>()
            {
                apt.Object, aptNew.Object
            };

            facade.Setup(f => f.FetchApartments("3445")).Returns(aptlist);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.FetchBuildingApartments();

            //Assert
            Assert.NotNull(result);

            var okresult = Assert.IsType <OkNegotiatedContentResult <IEnumerable <IApartment> > >(result);

            Assert.NotNull(okresult.Content);
            Assert.Equal(2, okresult.Content.Count());

            var enumerator = okresult.Content.GetEnumerator();

            enumerator.MoveNext();
            Assert.NotNull(enumerator.Current);
            Assert.Equal(2, enumerator.Current.Id);

            enumerator.MoveNext();
            Assert.NotNull(enumerator.Current);
            Assert.Equal(3, enumerator.Current.Id);

            enumerator.Dispose();
        }
示例#10
0
        public void CreateBooking_ThrowsError_BadModel()
        {
            //Arrange
            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            controller.ModelState.AddModelError("Key", "ErrorMessage");

            //Act
            var result = controller.UpdateApartment(model);

            //Assert
            Assert.NotNull(result);
            Assert.IsType <InvalidModelStateResult>(result);
        }
示例#11
0
            public override void PopulatePieMenuPicker(ref InteractionInstanceParameters parameters, out List <ObjectPicker.TabInfo> listObjs, out List <ObjectPicker.HeaderInfo> headers, out int NumSelectableRows)
            {
                NumSelectableRows = 1;
                headers           = new List <ObjectPicker.HeaderInfo>();
                listObjs          = new List <ObjectPicker.TabInfo>();
                headers.Add(new ObjectPicker.HeaderInfo("Ui/Caption/ObjectPicker:ObjectName", "Ui/Tooltip/ObjectPicker:Name", 250));
                headers.Add(new ObjectPicker.HeaderInfo(CommonMethods.LocalizeString("FamilyFunds", new object[0]), CommonMethods.LocalizeString("FamilyFnds", new object[0])));
                headers.Add(new ObjectPicker.HeaderInfo(CommonMethods.LocalizeString("IsActive", new object[0]), CommonMethods.LocalizeString("IsActive", new object[0])));

                List <ObjectPicker.RowInfo> rowInfo = new List <ObjectPicker.RowInfo>();
                Sim        actor = parameters.Actor as Sim;
                Controller c     = parameters.Target as Controller;

                if (actor != null && c != null)
                {
                    try
                    {
                        //Clean the families first
                        ApartmentController.CleanupFamily(c);

                        //Select one family member for the list
                        foreach (ApartmentFamily family in c.Families)
                        {
                            if (family.Residents != null && family.Residents.Count > 0 && !family.IsActive)
                            {
                                List <ObjectPicker.ColumnInfo> columnInfo = new List <ObjectPicker.ColumnInfo>();

                                columnInfo.Add(new ObjectPicker.TextColumn(family.FamilyName));
                                columnInfo.Add(new ObjectPicker.TextColumn(family.FamilyFunds.ToString()));
                                columnInfo.Add(new ObjectPicker.TextColumn(family.IsActive.ToString()));
                                ObjectPicker.RowInfo info = new ObjectPicker.RowInfo(family, columnInfo);
                                rowInfo.Add(info);
                            }
                        }

                        listObjs.Add(new ObjectPicker.TabInfo("all", "", rowInfo));
                    }
                    catch (System.Exception ex)
                    {
                        CommonMethods.PrintMessage(ex.Message);
                    }
                }
            }
示例#12
0
        public async Task AddApartmentUserNotLoggedIn()
        {
            var context = new POAMDbContext();

            RemoveApartment(context, "DummyBuilding");

            var apartment = GenerateApartment();

            var apartmentController = new ApartmentController(context);

            var result = await apartmentController.AddApartment(apartment);

            var existingApartment = context.Apartment.FirstOrDefault(a => a.Building == "DummyBuilding");

            Assert.Null(existingApartment);
            var redirectResult = Assert.IsType <RedirectResult>(result);

            Assert.NotNull(redirectResult);
            Assert.Equal("~/Home/Index", redirectResult.Url);
        }
示例#13
0
        public void UpdateApartment_ThrowsError_InternalError()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.InternalException();

            facade.Setup(f => f.UpdateApartment(model.Id, model.Level, model.Number, model.TenantsAllowed, model.FacingDirection, "3445")).Throws(exception);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.UpdateApartment(model);

            //Assert
            Assert.NotNull(result);

            Assert.IsType <InternalServerErrorResult>(result);
        }
        public void FetchApartment_ThrowsError_InternalServerError()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.InternalException();

            facade.Setup(f => f.FetchApartment(2, "3445")).Throws(exception);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.FetchApartment(2);

            //Assert
            Assert.NotNull(result);

            Assert.IsType <InternalServerErrorResult>(result);
        }
        public void FetchApartment_InvalidValue_BadRequest()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.NotFoundException("Apartment");

            facade.Setup(f => f.FetchApartment(2, "3445")).Throws(exception);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.FetchApartment(2);

            //Assert
            Assert.NotNull(result);

            Assert.IsType <BadRequestErrorMessageResult>(result);
        }
示例#16
0
        public void UpdateApartment_InvalidValues_BadRequest()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.NotFoundException("Apartment");

            facade.Setup(f => f.UpdateApartment(model.Id, model.Level, model.Number, model.TenantsAllowed, model.FacingDirection, "3445")).Throws(exception);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.UpdateApartment(model);

            //Assert
            Assert.NotNull(result);

            var badRequest = Assert.IsType <BadRequestErrorMessageResult>(result);

            Assert.Equal("The Apartment you requested was not found. Please search again.", badRequest.Message);
        }
        public void FetchApartmentBuilding_InvalidValues_BadRequest()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.NotFoundException("Apartment");

            facade.Setup(f => f.FetchApartments("3445")).Throws(exception);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.FetchBuildingApartments();

            //Assert
            Assert.NotNull(result);

            var badRequest = Assert.IsType <BadRequestErrorMessageResult>(result);

            Assert.Equal("The Apartment you requested was not found. Please search again.", badRequest.Message);
        }
示例#18
0
        public async Task ApartmentsOwnedLoggedIn()
        {
            var context = new POAMDbContext();

            RemoveUser(context);

            Authentication.Instance.UserLogin(CreateUser(context));

            var apartmentController = new ApartmentController(context);

            var result = await apartmentController.ApartmentsOwned();


            var redirectResult = Assert.IsType <ViewResult>(result);

            Assert.NotNull(redirectResult);
            Assert.True(string.IsNullOrEmpty(redirectResult.ViewName) || redirectResult.ViewName == "ApartmentsOwned");
            var model = Assert.IsAssignableFrom <IEnumerable <Apartment> >(redirectResult.ViewData.Model);

            Authentication.Instance.Logout();
            RemoveUser(context);
        }
示例#19
0
        public override bool Run()
        {
            //Active Family
            if (base.SelectedObjects != null && base.SelectedObjects.Count > 0)
            {
                ApartmentFamily selectedFamily = base.SelectedObjects[0] as ApartmentFamily;
                try
                {
                    if (selectedFamily != null)
                    {
                        ApartmentController.DeleteFamily(base.Target, selectedFamily);
                        base.Target.StartUpOrSwitch();
                    }
                }
                catch (System.Exception ex)
                {
                    CommonMethods.PrintMessage(ex.Message);
                }
            }



            return(true);
        }
        public void FetchApartment_RegularValues_OkResult()
        {
            //Arrange
            var apt = new Mock <IApartment>();

            apt.SetupGet(a => a.Id).Returns(2);

            facade.Setup(f => f.FetchApartment(2, "3445")).Returns(apt.Object);

            var controller = new ApartmentController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.FetchApartment(2);

            //Assert
            Assert.NotNull(result);

            var okresult = Assert.IsType <OkNegotiatedContentResult <IApartment> >(result);

            Assert.Equal(2, okresult.Content.Id);
        }
示例#21
0
        public override bool Run()
        {
            ApartmentController.StopAcceptingRoommates();

            return(true);
        }
        private ApartmentController SetupDefaultController()
        {
            var options = new DbContextOptionsBuilder <ApartmentContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            using (var context = new ApartmentContext(options))
            {
                context.Users.Add(new User
                {
                    Id           = 2,
                    Username     = "******",
                    Password     = "******",
                    PasswordSalt = Convert.FromBase64String("tYwvfcbNoAFjLOgwhYpGaQ=="),
                    Role         = Role.Realtor
                });
                context.Apartments.Add(new Apartment
                {
                    Id            = 1,
                    Name          = "High living",
                    Description   = "Come see the sights from up on high!",
                    Rooms         = 5,
                    Area          = 2000,
                    MonthlyPrice  = 3540,
                    Latitude      = 30,
                    Longitude     = -95,
                    RealtorUserId = 2,
                    IsRented      = false,
                    DateAdded     = new DateTime(2020, 05, 31)
                });
                context.Apartments.Add(new Apartment
                {
                    Id            = 2,
                    Name          = "Next to the water",
                    Description   = "Relax with your own private dock.",
                    Rooms         = 2,
                    Area          = 2500,
                    MonthlyPrice  = 1750,
                    Latitude      = 28,
                    Longitude     = -105,
                    RealtorUserId = 2,
                    IsRented      = true,
                    DateAdded     = new DateTime(2020, 02, 20)
                });
                context.Apartments.Add(new Apartment
                {
                    Id            = 3,
                    Name          = "Low living",
                    Description   = "Stay close to the pulse!",
                    Rooms         = 1,
                    Area          = 500,
                    MonthlyPrice  = 999.99M,
                    Latitude      = 45,
                    Longitude     = -110,
                    RealtorUserId = 2,
                    IsRented      = false,
                    DateAdded     = new DateTime(2020, 03, 01)
                });
                context.SaveChanges();
            }

            var appSettings = new AppSettings {
                Secret = "This is a test Secret string"
            };
            var appSettingOptions = new Mock <IOptions <AppSettings> >();

            appSettingOptions.SetupGet(a => a.Value).Returns(appSettings);
            var controller = new ApartmentController(
                new ApartmentContext(options));

            return(controller);
        }
示例#23
0
 /// <summary>
 /// World quitting, remove listeners
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void World_OnWorldQuitEventHandler(object sender, System.EventArgs e)
 {
     ApartmentController.StopAcceptingRoommates();
 }
 public ApartmentTest()
 {
     _controller = SetupDefaultController();
 }
 public void Dispose()
 {
     _controller = null;
 }