add STPAddressViewModelTest
This commit is contained in:
parent
cdcf6913eb
commit
123bf96609
|
@ -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 */,
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue