Skip to content

Commit

Permalink
tests; added Subscription create with Plan & change
Browse files Browse the repository at this point in the history
  • Loading branch information
aheckmann authored and Aaron Heckmann committed Mar 19, 2014
1 parent b45a1f2 commit 8f464a9
Showing 1 changed file with 89 additions and 0 deletions.
89 changes: 89 additions & 0 deletions Test/SubscriptionTest.cs
Expand Up @@ -256,5 +256,94 @@ public void PostponeSubscription()
var diff = renewal.Date.Subtract(sub.CurrentPeriodEndsAt.Value.Date).Days;
diff.Should().Be(1);
}

[Fact]
[Trait("include","y")]
public void NewPlanWithAddons()
{
Plan plan = null;
Plan plan2 = null;
AddOn addon1 = null;
AddOn addon2 = null;
Account account = null;
Subscription sub = null;
Subscription sub2 = null;
Subscription sub3 = null;

try
{
plan = new Plan(GetMockPlanCode(), "aarons test plan")
{
Description = "Create Subscription Plan With Addons Test"
};
plan.UnitAmountInCents.Add("USD", 100);
plan.Create();

addon1 = plan.CreateAddOn("addon1", "addon1");
addon1.DisplayQuantityOnHostedPage = true;
addon1.UnitAmountInCents.Add("USD", 100);
addon1.DefaultQuantity = 1;
addon1.Create();

addon2 = plan.CreateAddOn("addon2", "addon2");
addon2.DisplayQuantityOnHostedPage = true;
addon2.UnitAmountInCents.Add("USD", 200);
addon2.DefaultQuantity = 1;
addon2.Create();

plan = Plans.Get(plan.PlanCode);

var addon_test_1 = plan.GetAddOn("addon1");
Assert.Equal(addon1.UnitAmountInCents["USD"], addon_test_1.UnitAmountInCents["USD"]);

var addon_test_2 = plan.GetAddOn("addon2");
Assert.Equal(addon2.UnitAmountInCents["USD"], addon_test_2.UnitAmountInCents["USD"]);

account = CreateNewAccountWithBillingInfo();

sub = new Subscription(account, plan, "USD");
sub.AddOns.Add(new SubscriptionAddOn("addon1", 100, 1));
sub.AddOns.Add(new SubscriptionAddOn("addon2", 200, 2));
sub.Create();

sub.ActivatedAt.Should().HaveValue().And.NotBe(default(DateTime));
sub.State.Should().Be(Subscription.SubscriptionState.Active);

sub = Subscriptions.Get(sub.Uuid);
Assert.Equal(2, sub.AddOns.Count);

// test changing the plan of a subscription
plan2 = new Plan(GetMockPlanCode(), "aarons test plan 2")
{
Description = "Create Subscription Plan With Addons Test 2"
};
plan2.UnitAmountInCents.Add("USD", 1900);
plan2.Create();

sub2 = Subscriptions.Get(sub.Uuid);
sub2.UnitAmountInCents = plan2.UnitAmountInCents["USD"];
sub2.Plan = plan2;

foreach (var addOn in sub2.AddOns)
{
addOn.UnitAmountInCents = plan2.UnitAmountInCents["USD"];
}
sub2.ChangeSubscription(Subscription.ChangeTimeframe.Now);

// check if the changes were saved
sub3 = Subscriptions.Get(sub2.Uuid);
sub3.UnitAmountInCents.Should().Equals(plan2.UnitAmountInCents["USD"]);
foreach (var addOn in sub3.AddOns)
{
addOn.UnitAmountInCents.Should().Equals(plan2.UnitAmountInCents["USD"]);
}

} finally {
if (sub != null) sub.Cancel();
if (plan2 != null) plan2.Deactivate();
if (plan != null) plan.Deactivate();
if (account != null) account.Close();
}
}
}
}

0 comments on commit 8f464a9

Please sign in to comment.