def test_create_customer_should_facades_create_customer_with_membership_email_metadata_and_card_token(
            self, stripe_facade_class):
        # setup
        adapter = MembershipStripeAdapter(self.membership)
        metadata = dict(first_name=self.membership.first_name,
                        last_name=self.membership.last_name,
                        address=self.membership.address,
                        zip_code=self.membership.zip_code,
                        city=self.membership.city,
                        state=self.membership.state,
                        count=self.membership.country)
        facade = stripe_facade_class.return_value

        # action
        returned_value = adapter.create_customer(self.card_token)

        # assert
        self.assertTupleEqual(
            (self.membership.email, metadata, self.card_token),
            facade.create_customer.call_args[0])
        self.assertEqual(id(facade.create_customer.return_value),
                         id(returned_value))
    def test_create_customer_should_facades_create_customer_with_membership_email_metadata_and_card_token(
            self, stripe_facade_class):
        # setup
        adapter = MembershipStripeAdapter(self.membership)
        metadata = dict(
            first_name=self.membership.first_name,
            last_name=self.membership.last_name,
            address=self.membership.address,
            zip_code=self.membership.zip_code,
            city=self.membership.city,
            state=self.membership.state,
            count=self.membership.country)
        facade = stripe_facade_class.return_value

        # action
        returned_value = adapter.create_customer(self.card_token)

        # assert
        self.assertTupleEqual(
            (self.membership.email, metadata, self.card_token),
            facade.create_customer.call_args[0])
        self.assertEqual(id(facade.create_customer.return_value),
        id(returned_value))