public void Create_SubscriptionWithTrial()
{
TestPlan plan = PlanFixture.PLAN_WITH_TRIAL;
SubscriptionRequest request = new SubscriptionRequest
{
PaymentMethodToken = creditCard.Token,
PlanId = plan.Id
};
Result<Subscription> result = gateway.Subscription.Create(request);
Assert.IsTrue(result.IsSuccess());
Subscription subscription = result.Target;
Assert.AreEqual(creditCard.Token, subscription.PaymentMethodToken);
Assert.AreEqual(plan.Id, subscription.PlanId);
Assert.AreEqual(MerchantAccountIDs.DEFAULT_MERCHANT_ACCOUNT_ID, subscription.MerchantAccountId);
Assert.AreEqual(plan.Price, subscription.Price);
Assert.IsTrue(Regex.IsMatch(subscription.Id, "^\\w{6}$"));
Assert.AreEqual(SubscriptionStatus.ACTIVE, subscription.Status);
Assert.AreEqual(0, subscription.FailureCount);
Assert.IsTrue(subscription.HasTrialPeriod.Value);
Assert.AreEqual(0, subscription.CurrentBillingCycle.Value);
Assert.IsFalse(subscription.BillingPeriodEndDate.HasValue);
Assert.IsFalse(subscription.BillingPeriodStartDate.HasValue);
Assert.IsTrue(subscription.NextBillingDate.HasValue);
Assert.IsTrue(subscription.FirstBillingDate.HasValue);
Assert.IsTrue(subscription.CurrentBillingCycle.HasValue);
}