public function testGatewayCreate_whenSuccessful()
{
$creditCard = SubscriptionHelper::createCreditCard();
$plan = SubscriptionHelper::triallessPlan();
$gateway = new Braintree\Gateway(['environment' => 'development', 'merchantId' => 'integration_merchant_id', 'publicKey' => 'integration_public_key', 'privateKey' => 'integration_private_key']);
$result = $gateway->subscription()->create(['paymentMethodToken' => $creditCard->token, 'planId' => $plan['id']]);
Test\Helper::assertPrintable($result);
$this->assertTrue($result->success);
$subscription = $result->subscription;
$this->assertEquals($creditCard->token, $subscription->paymentMethodToken);
$this->assertEquals(0, $subscription->failureCount);
$this->assertEquals($plan['id'], $subscription->planId);
$this->assertEquals(Test\Helper::defaultMerchantAccountId(), $subscription->merchantAccountId);
$this->assertEquals(Braintree\Subscription::ACTIVE, $subscription->status);
}