public void SubscriptionAddOverloads() { Plan plan = null; Account account = null; Subscription sub = null; System.Collections.Generic.List <AddOn> addons = new System.Collections.Generic.List <AddOn>(); try { plan = new Plan(GetMockPlanCode(), "subscription addon overload plan") { Description = "Create Subscription Plan With Addons Test" }; plan.UnitAmountInCents.Add("USD", 100); plan.Create(); int numberOfAddons = 7; for (int i = 0; i < numberOfAddons; ++i) { var name = "Addon" + i.AsString(); var addon = plan.NewAddOn(name, name); addon.DisplayQuantityOnHostedPage = true; addon.UnitAmountInCents.Add("USD", 1000 + i); addon.DefaultQuantity = i + 1; addon.Create(); addons.Add(addon); } account = CreateNewAccountWithBillingInfo(); sub = new Subscription(account, plan, "USD"); Assert.NotNull(sub.AddOns); sub.AddOns.Add(new SubscriptionAddOn("Addon0", 100, 1)); sub.AddOns.Add(addons[1]); sub.AddOns.Add(addons[2], 2); sub.AddOns.Add(addons[3], 3, 100); sub.AddOns.Add(addons[4].AddOnCode); sub.AddOns.Add(addons[5].AddOnCode, 4); sub.AddOns.Add(addons[6].AddOnCode, 5, 100); sub.Create(); sub.State.Should().Be(Subscription.SubscriptionState.Active); for (int i = 0; i < numberOfAddons; ++i) { var code = "Addon" + i.AsString(); var addon = sub.AddOns.AsQueryable().First(x => x.AddOnCode == code); Assert.NotNull(addon); } sub.AddOns.RemoveAt(0); Assert.Equal(6, sub.AddOns.Count); sub.AddOns.Clear(); Assert.Equal(0, sub.AddOns.Count); var subaddon = new SubscriptionAddOn("a", 1); var list = new System.Collections.Generic.List <SubscriptionAddOn>(); list.Add(subaddon); sub.AddOns.AddRange(list); Assert.Equal(1, sub.AddOns.Capacity); sub.AddOns.AsReadOnly(); Assert.True(sub.AddOns.Contains(subaddon)); Predicate <SubscriptionAddOn> p = x => x.AddOnCode == "a"; Assert.True(sub.AddOns.Exists(p)); Assert.NotNull(sub.AddOns.Find(p)); Assert.Equal(1, sub.AddOns.FindAll(p).Count); Assert.NotNull(sub.AddOns.FindLast(p)); int count = 0; sub.AddOns.ForEach(delegate(SubscriptionAddOn s) { count++; }); Assert.Equal(1, count); Assert.Equal(0, sub.AddOns.IndexOf(subaddon)); sub.AddOns.Reverse(); sub.AddOns.Sort(); } finally { try { if (sub != null && sub.Uuid != null) { sub.Cancel(); } if (plan != null) { plan.Deactivate(); } if (account != null) { account.Close(); } } catch (RecurlyException e) { } } }
Task <bool> PlatformIsSubscriptionActive(SubscriptionAddOn addOn) { throw new NotImplementedException(); }
public void SubscriptionAddOverloads() { Plan plan = null; Account account = null; Subscription sub = null; System.Collections.Generic.List<AddOn> addons = new System.Collections.Generic.List<AddOn>(); try { plan = new Plan(GetMockPlanCode(), "subscription addon overload plan") { Description = "Create Subscription Plan With Addons Test" }; plan.UnitAmountInCents.Add("USD", 100); plan.Create(); int numberOfAddons = 7; for (int i = 0; i < numberOfAddons; ++i) { var name = "Addon" + i.AsString(); var addon = plan.NewAddOn(name, name); addon.DisplayQuantityOnHostedPage = true; addon.UnitAmountInCents.Add("USD", 1000 + i); addon.DefaultQuantity = i; addon.Create(); addons.Add(addon); } account = CreateNewAccountWithBillingInfo(); sub = new Subscription(account, plan, "USD"); Assert.NotNull(sub.AddOns); sub.AddOns.Add(new SubscriptionAddOn("Addon0", 100, 1)); sub.AddOns.Add(addons[1]); sub.AddOns.Add(addons[2], 2); sub.AddOns.Add(addons[3], 3, 100); sub.AddOns.Add(addons[4].AddOnCode); sub.AddOns.Add(addons[5].AddOnCode, 4); sub.AddOns.Add(addons[6].AddOnCode, 5, 100); sub.Create(); sub.State.Should().Be(Subscription.SubscriptionState.Active); for (int i = 0; i < numberOfAddons; ++i) { var code = "Addon" + i.AsString(); var addon = sub.AddOns.AsQueryable().First(x => x.AddOnCode == code); Assert.NotNull(addon); } sub.AddOns.RemoveAt(0); Assert.Equal(6, sub.AddOns.Count); sub.AddOns.Clear(); Assert.Equal(0, sub.AddOns.Count); var subaddon = new SubscriptionAddOn("a",1); var list = new System.Collections.Generic.List<SubscriptionAddOn>(); list.Add(subaddon); sub.AddOns.AddRange(list); Assert.Equal(1, sub.AddOns.Capacity); Assert.DoesNotThrow(delegate { sub.AddOns.AsReadOnly(); }); Assert.True(sub.AddOns.Contains(subaddon)); Predicate<SubscriptionAddOn> p = x => x.AddOnCode == "a"; Assert.True(sub.AddOns.Exists(p)); Assert.NotNull(sub.AddOns.Find(p)); Assert.Equal(1, sub.AddOns.FindAll(p).Count); Assert.NotNull(sub.AddOns.FindLast(p)); int count = 0; sub.AddOns.ForEach(delegate(SubscriptionAddOn s) { count++; }); Assert.Equal(1, count); Assert.Equal(0, sub.AddOns.IndexOf(subaddon)); Assert.DoesNotThrow(delegate { sub.AddOns.Reverse(); sub.AddOns.Sort(); }); } finally { try { if (sub != null && sub.Uuid != null) sub.Cancel(); if (plan != null) plan.Deactivate(); if (account != null) account.Close(); } catch (RecurlyException e) { } } }
public async Task <bool> IsSubscriptionActive(SubscriptionAddOn addOn) { return(await PlatformIsSubscriptionActive(addOn)); }