public void Create_SubscriptionWithoutTrial()
{
TestPlan plan = PlanFixture.PLAN_WITHOUT_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.AreEqual(plan.Price, subscription.NextBillAmount);
Assert.AreEqual(plan.Price, subscription.NextBillingPeriodAmount);
Assert.AreEqual(0.00M, subscription.Balance);
Assert.IsTrue(Regex.IsMatch(subscription.Id, "^\\w{6}$"));
Assert.AreEqual(SubscriptionStatus.ACTIVE, subscription.Status);
Assert.AreEqual(0, subscription.FailureCount);
Assert.IsFalse((bool)subscription.HasTrialPeriod);
Assert.AreEqual(1, subscription.CurrentBillingCycle);
Assert.IsTrue(subscription.BillingPeriodEndDate.HasValue);
Assert.IsTrue(subscription.BillingPeriodStartDate.HasValue);
Assert.IsTrue(subscription.NextBillingDate.HasValue);
Assert.IsTrue(subscription.FirstBillingDate.HasValue);
Assert.IsTrue(subscription.CreatedAt.HasValue);
Assert.IsTrue(subscription.UpdatedAt.HasValue);
Assert.IsTrue(subscription.PaidThroughDate.HasValue);
Assert.AreEqual(SubscriptionStatus.ACTIVE, subscription.StatusHistory[0].Status);
Assert.AreEqual(SubscriptionSource.API, subscription.StatusHistory[0].Source);
Assert.AreEqual(plan.Price, subscription.StatusHistory[0].Price);
Assert.AreEqual(0.00M, subscription.StatusHistory[0].Balance);
Assert.AreEqual("USD", subscription.StatusHistory[0].CurrencyIsoCode);
Assert.AreEqual("integration_trialless_plan", subscription.StatusHistory[0].PlanId);
}