add STPAddressViewModelTest

This commit is contained in:
Ben Guo 2016-10-21 13:53:37 -04:00
parent cdcf6913eb
commit 123bf96609
2 changed files with 146 additions and 0 deletions

View File

@ -418,6 +418,7 @@
C124A1851CCAB750007D42EE /* STPAnalyticsClientTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C124A1841CCAB750007D42EE /* STPAnalyticsClientTest.m */; };
C12655391CAA238E006F7265 /* STPAddCardViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F416241CA3639500486FB5 /* STPAddCardViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
C126553A1CAA2392006F7265 /* STPAddCardViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04F416251CA3639500486FB5 /* STPAddCardViewController.m */; };
C127110A1DBA7E490087840D /* STPAddressViewModelTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C12711091DBA7E490087840D /* STPAddressViewModelTest.m */; };
C13538081D2C2186003F6157 /* STPAddCardViewControllerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C13538071D2C2186003F6157 /* STPAddCardViewControllerTest.m */; };
C135380B1D2C22E5003F6157 /* MockSTPAPIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = C13538091D2C22E5003F6157 /* MockSTPAPIClient.h */; };
C135380C1D2C22E5003F6157 /* MockSTPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = C135380A1D2C22E5003F6157 /* MockSTPAPIClient.m */; };
@ -914,6 +915,7 @@
C124A17B1CCAA0C2007D42EE /* NSMutableURLRequest+Stripe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableURLRequest+Stripe.m"; sourceTree = "<group>"; };
C124A1801CCAA1BF007D42EE /* NSMutableURLRequest+StripeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableURLRequest+StripeTest.m"; sourceTree = "<group>"; };
C124A1841CCAB750007D42EE /* STPAnalyticsClientTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPAnalyticsClientTest.m; sourceTree = "<group>"; };
C12711091DBA7E490087840D /* STPAddressViewModelTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPAddressViewModelTest.m; sourceTree = "<group>"; };
C13538071D2C2186003F6157 /* STPAddCardViewControllerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPAddCardViewControllerTest.m; sourceTree = "<group>"; };
C13538091D2C22E5003F6157 /* MockSTPAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockSTPAPIClient.h; sourceTree = "<group>"; };
C135380A1D2C22E5003F6157 /* MockSTPAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MockSTPAPIClient.m; sourceTree = "<group>"; };
@ -1394,6 +1396,7 @@
04A488351CA34DC600506E53 /* STPEmailAddressValidatorTest.m */,
C1FEE5981CBFF24000A7632B /* STPPostalCodeValidatorTest.m */,
C1080F4B1CBED48A007B2D89 /* STPAddressTests.m */,
C12711091DBA7E490087840D /* STPAddressViewModelTest.m */,
C11810981CC6D46D0022FB55 /* NSDecimalNumber+StripeTest.m */,
C13538071D2C2186003F6157 /* STPAddCardViewControllerTest.m */,
F156753F1DB544D3004468E3 /* STPAddCardViewControllerLocalizationTests.m */,
@ -2099,6 +2102,7 @@
04A4C3921C4F263300B3B290 /* STPNSArrayStripeBoundSafeTests.m in Sources */,
F148ABFB1D5E88C70014FD92 /* STPTestUtils.m in Sources */,
045A62AB1B8E7259000165CE /* STPPaymentCardTextFieldTest.m in Sources */,
C127110A1DBA7E490087840D /* STPAddressViewModelTest.m in Sources */,
F12C8DC41D63DE9F00ADA0D7 /* STPPaymentContextAmountModel.m in Sources */,
F14C872F1D4FCDBA00C7CC6A /* STPPaymentContextTest.m in Sources */,
F14C873C1D4FE5BD00C7CC6A /* TestSTPBackendAPIAdapter.m in Sources */,

View File

@ -0,0 +1,142 @@
//
// STPAddressViewModelTest.m
// Stripe
//
// Created by Ben Guo on 10/21/16.
// Copyright © 2016 Stripe, Inc. All rights reserved.
//
#import <XCTest/XCTest.h>
#import "STPAddressViewModel.h"
@interface STPAddressViewModelTest : XCTestCase
@end
@implementation STPAddressViewModelTest
- (void)testInitWithRequiredBillingFields {
STPAddressViewModel *sut = [[STPAddressViewModel alloc] initWithRequiredBillingFields:STPBillingAddressFieldsNone];
XCTAssertTrue([sut.addressCells count] == 0);
sut = [[STPAddressViewModel alloc] initWithRequiredBillingFields:STPBillingAddressFieldsZip];
XCTAssertTrue([sut.addressCells count] == 1);
STPAddressFieldTableViewCell *cell1 = sut.addressCells[0];
XCTAssertEqual(cell1.type, STPAddressFieldTypeZip);
sut = [[STPAddressViewModel alloc] initWithRequiredBillingFields:STPBillingAddressFieldsFull];
XCTAssertTrue([sut.addressCells count] == 7);
NSArray *types = @[
@(STPAddressFieldTypeName),
@(STPAddressFieldTypeLine1),
@(STPAddressFieldTypeLine2),
@(STPAddressFieldTypeCity),
@(STPAddressFieldTypeState),
@(STPAddressFieldTypeZip),
@(STPAddressFieldTypeCountry),
];
for (NSUInteger i=0; i<[sut.addressCells count]; i++) {
XCTAssertEqual(sut.addressCells[i].type, [types[i] integerValue]);
}
}
- (void)testInitWithRequiredShippingFields {
STPAddressViewModel *sut = [[STPAddressViewModel alloc] initWithRequiredShippingFields:PKAddressFieldNone];
XCTAssertTrue([sut.addressCells count] == 0);
sut = [[STPAddressViewModel alloc] initWithRequiredShippingFields:PKAddressFieldName];
XCTAssertTrue([sut.addressCells count] == 1);
STPAddressFieldTableViewCell *cell1 = sut.addressCells[0];
XCTAssertEqual(cell1.type, STPAddressFieldTypeName);
sut = [[STPAddressViewModel alloc] initWithRequiredShippingFields:PKAddressFieldName|PKAddressFieldEmail];
XCTAssertTrue([sut.addressCells count] == 2);
NSArray *types = @[
@(STPAddressFieldTypeName),
@(STPAddressFieldTypeEmail),
];
for (NSUInteger i=0; i<[sut.addressCells count]; i++) {
XCTAssertEqual(sut.addressCells[i].type, [types[i] integerValue]);
}
sut = [[STPAddressViewModel alloc] initWithRequiredShippingFields:PKAddressFieldPostalAddress|PKAddressFieldEmail|PKAddressFieldPhone];
XCTAssertTrue([sut.addressCells count] == 9);
types = @[
@(STPAddressFieldTypeEmail),
@(STPAddressFieldTypeName),
@(STPAddressFieldTypeLine1),
@(STPAddressFieldTypeLine2),
@(STPAddressFieldTypeCity),
@(STPAddressFieldTypeState),
@(STPAddressFieldTypeZip),
@(STPAddressFieldTypeCountry),
@(STPAddressFieldTypePhone),
];
for (NSUInteger i=0; i<[sut.addressCells count]; i++) {
XCTAssertEqual(sut.addressCells[i].type, [types[i] integerValue]);
}
}
- (void)testGetAddress {
STPAddressViewModel *sut = [[STPAddressViewModel alloc] initWithRequiredShippingFields:PKAddressFieldPostalAddress|PKAddressFieldEmail|PKAddressFieldPhone];
sut.addressCells[0].contents = @"foo@example.com";
sut.addressCells[1].contents = @"John Smith";
sut.addressCells[2].contents = @"55 John St";
sut.addressCells[3].contents = @"#3B";
sut.addressCells[4].contents = @"New York";
sut.addressCells[5].contents = @"NY";
sut.addressCells[6].contents = @"10002";
sut.addressCells[7].contents = @"US";
sut.addressCells[8].contents = @"555-555-5555";
XCTAssertEqualObjects(sut.address.email, @"foo@example.com");
XCTAssertEqualObjects(sut.address.name, @"John Smith");
XCTAssertEqualObjects(sut.address.line1, @"55 John St");
XCTAssertEqualObjects(sut.address.line2, @"#3B");
XCTAssertEqualObjects(sut.address.city, @"New York");
XCTAssertEqualObjects(sut.address.state, @"NY");
XCTAssertEqualObjects(sut.address.postalCode, @"10002");
XCTAssertEqualObjects(sut.address.country, @"US");
XCTAssertEqualObjects(sut.address.phone, @"555-555-5555");
}
- (void)testSetAddress {
STPAddress *address = [STPAddress new];
address.email = @"foo@example.com";
address.name = @"John Smith";
address.line1 = @"55 John St";
address.line2 = @"#3B";
address.city = @"New York";
address.state = @"NY";
address.postalCode = @"10002";
address.country = @"US";
address.phone = @"555-555-5555";
STPAddressViewModel *sut = [[STPAddressViewModel alloc] initWithRequiredShippingFields:PKAddressFieldPostalAddress|PKAddressFieldEmail|PKAddressFieldPhone];
sut.address = address;
XCTAssertEqualObjects(sut.addressCells[0].contents, @"foo@example.com");
XCTAssertEqualObjects(sut.addressCells[1].contents, @"John Smith");
XCTAssertEqualObjects(sut.addressCells[2].contents, @"55 John St");
XCTAssertEqualObjects(sut.addressCells[3].contents, @"#3B");
XCTAssertEqualObjects(sut.addressCells[4].contents, @"New York");
XCTAssertEqualObjects(sut.addressCells[5].contents, @"NY");
XCTAssertEqualObjects(sut.addressCells[6].contents, @"10002");
XCTAssertEqualObjects(sut.addressCells[7].contents, @"US");
XCTAssertEqualObjects(sut.addressCells[8].contents, @"555-555-5555");
}
- (void)testIsValid {
STPAddressViewModel *sut = [[STPAddressViewModel alloc] initWithRequiredBillingFields:STPBillingAddressFieldsFull];
XCTAssertFalse(sut.isValid);
sut.addressCells[0].contents = @"John Smith";
sut.addressCells[1].contents = @"55 John St";
sut.addressCells[2].contents = @"#3B";
XCTAssertFalse(sut.isValid);
sut.addressCells[3].contents = @"New York";
sut.addressCells[4].contents = @"NY";
sut.addressCells[5].contents = @"10002";
sut.addressCells[6].contents = @"US";
XCTAssertTrue(sut.isValid);
}
@end