public void LoadEditPPV_VODContent_NullModel_ValidateUserAbleToLoadDefaultPpvVodContentForEdit() { using (ShimsContext.Create()) { // Given a user // And a default ppv and vod content for a subscriber var ppvVodModel = new PPV_VOD_SettingsModel { PIN = null, PINRequired = false, PPVCap = null, PPVPrivilege = DAL.Enums.SubscriberEnums.PPVPrivilegeEnum.None, PPVResetDay = 0 }; // When loading the ppv and vod content for edit by passing null model var ppvVodController = DependencyResolver.Current.GetService<PPV_VODController>(); var actionResponse = ppvVodController.LoadEditPPV_VODContent(null) as PartialViewResult; // Then the user receives a response Assert.IsNotNull(actionResponse, "LoadEditPPV_VODContent returned null"); // And the response is successful Assert.AreEqual("EditPPV_VOD_Partial", actionResponse.ViewName, "ViewName does not match"); // And the ppv vod settings matches with the default ppv vod settings model var jss = new JavaScriptSerializer(); Assert.AreEqual(jss.Serialize(ppvVodModel), jss.Serialize(actionResponse.Model)); } }
public void UpdatePPVVOD_ValidateUserAbleToUpdatePPVPrivilegeFromCappedToUnlimited() { using (ShimsContext.Create()) { // Given a user that has permission to update ppv vod settings ShimCurrentUser.AsUserDto = () => new UserDto(); // And a valid provisioned subscriber const string subId = "subId"; // And the subscriber has ppv vod settings with ppv privilege capped var ppvVodModel = new PPV_VOD_SettingsModel { PIN = "1234", PINRequired = true, PPVCap = "150.00", PPVPrivilege = SubscriberEnums.PPVPrivilegeEnum.Capped, PPVResetDay = 15 }; // And the user has loaded the subscriber var currentSubscriber = new ShimCurrentSubscriber { SubIdGet = () => subId, NameGet = () => "subname", LocationIdGet = () => "locid", ServiceEnabledGet = () => true, FoundInBillingGet = () => true, AccountTypeGet = () => AccountTypeDto.Residential, CbrGet = () => "4250010001", EmailGet = () => "*****@*****.**", PINGet = () => ppvVodModel.PIN, PPVCapGet = () => ppvVodModel.PPVCap, PPVResetDayGet = () => ppvVodModel.PPVResetDay.ToString(CultureInfo.InvariantCulture), PPVPrivilegeGet = () => ppvVodModel.PPVPrivilege, ProvisionedServicesListGet = () => new List<ServiceDto>() }; var session = new ShimHttpSessionState { ItemGetString = s => { if (s == "") return null; return null; } }; ShimHttpContext.AllInstances.SessionGet = (o) => session; ShimCurrentSubscriber.SessionInstanceGet = () => new ShimCurrentSubscriber(); ShimCurrentSubscriber.GetInstance = () => currentSubscriber; // And the user edits ppv privilege from capped to unlimited var ppvVodModel4Update = new PPV_VOD_SettingsModel { PIN = ppvVodModel.PIN, PINRequired = ppvVodModel.PINRequired, PPVCap = ppvVodModel.PPVCap, PPVPrivilege = SubscriberEnums.PPVPrivilegeEnum.Unlimited, PPVResetDay = ppvVodModel.PPVResetDay }; // When updating the ppv vod settings var ppvVodController = DependencyResolver.Current.GetService<PPV_VODController>(); ShimRosettianClient.AllInstances.UpdateSubscriberSubscriberDtoBooleanUserDto = (myTestClient, mySubscriberDto, myOverriteService, myUserDto) => true; var actionResponse = ppvVodController.UpdatePPV_VOD(ppvVodModel4Update) as JsonResult; // Then the user receives a response Assert.IsNotNull(actionResponse, "UpdatePPV_VOD action method returned null"); // And the response is successful var jss = new JavaScriptSerializer(); var expectedResult = new { status = "valid", returnedPartial = "", }.ToJSON(); Assert.AreEqual(jss.Serialize(expectedResult), jss.Serialize(actionResponse.Data.ToJSON())); } }
private static void ValidatePpvSetting(PPV_VOD_SettingsModel expected, SubscriberDto actual) { Assert.IsTrue(actual.Accounts.Any(), "Subscriber should not be null!"); var account = actual.Accounts[0]; switch (account.PPVPrivilege) { case "2": account.PPVPrivilege = "Capped"; break; case "1": account.PPVPrivilege = "Unlimited"; break; case "0": account.PPVPrivilege = "None"; break; } Assert.AreEqual(expected.PPVPrivilege.ToString(), actual.Accounts[0].PPVPrivilege, "PPVPrivilege does not match"); Assert.AreEqual(expected.PPVCap, actual.Accounts[0].PPVCap, "PPVCape does not match"); Assert.AreEqual(expected.PPVResetDay.ToString(CultureInfo.InvariantCulture), actual.Accounts[0].PPVResetDay, "PPVResetDay does not match"); Assert.AreEqual(expected.PINRequired, actual.Accounts[0].PinRequired, "PinRequired does not match"); Assert.AreEqual(expected.PIN, actual.Accounts[0].PIN, "PIN does not match"); }
private static void ValidatePpvSetting(PPV_VOD_SettingsModel expected, CurrentSubscriber actual) { Assert.AreEqual(expected.PPVPrivilege, actual.PPVPrivilege, "PPVPrivilege does not match"); Assert.AreEqual(expected.PPVCap, actual.PPVCap, "PPVCape does not match"); Assert.AreEqual(expected.PPVResetDay.ToString(CultureInfo.InvariantCulture), actual.PPVResetDay, "PPVResetDay does not match"); Assert.AreEqual(expected.PINRequired, actual.PINRequired, "PinRequired does not match"); Assert.AreEqual(expected.PIN, actual.PIN, "PIN does not match"); }
public void UpdatePPV_VOD_UpdatePPVPrivilegeFromCappedToUnlimited() { var sub = new SubscriberDto(); try { // new sub data sub = DataHelper.NewSubscriberData(); sub.CustomFields = DataHelper.DefaultCustomFields_Sub(); sub.Accounts[0].PPVPrivilege = SubscriberEnums.PPVPrivilegeEnum.Capped.ToString(); sub.Accounts[0].PPVCap = "150.00"; sub.Accounts[0].PPVResetDay = "10"; sub.Accounts[0].PinRequired = true; sub.Accounts[0].PIN = "2345"; // create subscriber with PPVCap privilege DataHelper.RestoreSubscriber1(sub, false); // set current subscriber CurrentSubscriber.SetInstance(sub); // get current subscriber var currentSub = CurrentSubscriber.GetInstance(); Assert.AreEqual(SubscriberEnums.PPVPrivilegeEnum.Capped, currentSub.PPVPrivilege); // model var ppvSettingsModel = new PPV_VOD_SettingsModel { PPVPrivilege = currentSub.PPVPrivilege, PPVCap = currentSub.PPVCap, PPVResetDay = int.Parse(currentSub.PPVResetDay), PINRequired = currentSub.PINRequired, PIN = currentSub.PIN }; // edit ppv settings ppvSettingsModel.PPVPrivilege = SubscriberEnums.PPVPrivilegeEnum.Unlimited; // call UpdatePPV_VOD action method var result = PpvVodController.UpdatePPV_VOD(ppvSettingsModel) as JsonResult; // validate return json result Assert.IsNotNull(result, "Json result is null"); Assert.IsNotNull(result.Data, "Json result data is null"); dynamic resultStatus = result.Data; Assert.AreEqual("valid", resultStatus.status as string, "Response status does not match!"); // validate current subscriber in session updated with new ppvsetting as well. currentSub = CurrentSubscriber.GetInstance(); Assert.IsNotNull(currentSub, "Model is null"); ValidatePpvSetting(ppvSettingsModel, currentSub); // validate subscriber ppvsettings updated in db var actualSub = DataHelper.LoadSubscriber(sub.ID); Assert.IsNotNull(actualSub, "Subscriber should not be null!"); ValidatePpvSetting(ppvSettingsModel, actualSub); } catch (System.Exception ex) { Assert.IsTrue(ex is AssertFailedException, ex.ToString()); throw; } finally { DataHelper.DeleteSubscriber(sub.ID); } }