public HertzUpdateTierResponseModel HertzUpdateTier(string loyaltyMemberId, string agent, string newTier, string newTierEndDate, string marketingCode) { HertzUpdateTierResponseModel htzUpdateTier = default; using (ConsoleCapture capture = new ConsoleCapture()) { try { var lwHtzUpdateTier = lwSvc.HertzUpdateTier(loyaltyMemberId, agent, newTier, newTierEndDate, marketingCode, String.Empty, out double time); htzUpdateTier = LODConvert.FromLW <HertzUpdateTierResponseModel>(lwHtzUpdateTier); } catch (LWClientException ex) { throw new LWServiceException(ex.Message, ex.ErrorCode); } catch (Exception ex) { throw new LWServiceException(ex.Message, -1); } finally { stepContext.AddAttachment(new Attachment("HertzUpdateTier", capture.Output, Attachment.Type.Text)); } } return(htzUpdateTier); }
public void HTZUpdateTier_Positive(MemberModel member, IHertzTier newTier, DateTime newTierEndDate, string newMarketingCode, string csAgent) { MemberController memController = new MemberController(Database, TestStep); try { //Generate unique LIDs for each virtual card in the member member = memController.AssignUniqueLIDs(member); TestStep.Start($"Make AddMember Call", "Source Member should be added successfully"); MemberModel memberOut = memController.AddMember(member); AssertModels.AreEqualOnly(member, memberOut, MemberModel.BaseVerify); TestStep.Pass("Source Member was added successfully and member object was returned", memberOut.ReportDetail()); VirtualCardModel vcSource = memberOut.VirtualCards.First(); var loyaltyId = memberOut.VirtualCards.First().LOYALTYIDNUMBER; var vckey = memberOut.VirtualCards.First().VCKEY.ToString(); TestStep.Start($"Make HertzUpdateTier Call", "HertzUpdateTier call should return HertzUpdateTierResponse object"); HertzUpdateTierResponseModel memberUpdateTier = memController.HertzUpdateTier(loyaltyId, csAgent, newTier.Code, newTierEndDate.ToString("MM/dd/yyyy"), newMarketingCode); Assert.IsNotNull(memberUpdateTier, "Expected populated HertzUpdateTierResponseModel object, but HertzUpdateTierResponseModel object returned was null"); TestStep.Pass("HertzUpdateTierResponseModel object was returned", memberUpdateTier.ReportDetail()); var tierCodeResponse = string.Empty; switch (memberUpdateTier.CURRENTTIERNAME) { case "Platinum Select": tierCodeResponse = "PS"; break; case "Platinum VIP": tierCodeResponse = "VP"; break; case "Gold": tierCodeResponse = "RG"; break; case "Five Star": tierCodeResponse = "FG"; break; case "Presidents Circle": tierCodeResponse = "PC"; break; case "Platinum": tierCodeResponse = "PL"; break; } TestStep.Start($"Verify New Tier values", "New Tier values returned should be correct"); Assert.IsNotEmpty(tierCodeResponse); Assert.AreEqual(newTier.Code.ToUpper(), tierCodeResponse); Assert.IsNotNull(memberUpdateTier.A_TIERENDDATE); Assert.AreEqual(newTierEndDate.ToString("yyyy-MM-dd"), ((DateTime)memberUpdateTier.A_TIERENDDATE).ToString("yyyy-MM-dd")); Assert.AreEqual(newMarketingCode.ToUpper(), memberUpdateTier.A_MKTGPROGRAMID.ToUpper()); TestStep.Pass("New Tier values response is as expcted", memberUpdateTier.ReportDetail()); } catch (AssertionException ex) { TestStep.Fail(ex.Message); Assert.Fail(); } catch (LWServiceException ex) { TestStep.Fail(ex.Message, new[] { $"Error Code: {ex.ErrorCode}", $"Error Message: {ex.ErrorMessage}" }); Assert.Fail(); } catch (AssertModelEqualityException ex) { TestStep.Fail(ex.Message, ex.ComparisonFailures); Assert.Fail(); } catch (Exception ex) { TestStep.Abort(ex.Message); Assert.Fail(); } }