Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
shopify_iossdk
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cemarose
shopify_iossdk
Commits
b952e5a3
Commit
b952e5a3
authored
9 years ago
by
Dima Bart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove unnecessary NSArray category.
parent
6a6a6a3c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
170 additions
and
0 deletions
+170
-0
BUYClientTest_Customer.m
Mobile Buy SDK/Mobile Buy SDK Tests/BUYClientTest_Customer.m
+156
-0
project.pbxproj
Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj
+14
-0
No files found.
Mobile Buy SDK/Mobile Buy SDK Tests/BUYClientTest_Customer.m
0 → 100644
View file @
b952e5a3
//
// BUYClientTest_Customer.h
// Mobile Buy SDK
//
// Created by Shopify.
// Copyright (c) 2015 Shopify Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
@import
XCTest
;
#import "BUYClientTestBase.h"
#import "BUYClient+Customers.h"
#import "BUYAccountCredentials.h"
#import "BUYError+BUYAdditions.h"
#import <OHHTTPStubs/OHHTTPStubs.h>
#import "OHHTTPStubsResponse+Helpers.h"
// Remove this macro entirely when test shop has customer api enabled
//#define CUSTOMER_API_AVAILABLE
@interface
BUYClientTest_Customer
:
BUYClientTestBase
@end
@implementation
BUYClientTest_Customer
-
(
void
)
tearDown
{
[
super
tearDown
];
[
OHHTTPStubs
removeAllStubs
];
}
-
(
void
)
testCustomerDuplicateEmail
{
[
OHHTTPStubs
stubRequestsPassingTest
:
^
BOOL
(
NSURLRequest
*
_Nonnull
request
)
{
return
[
self
shouldUseMocks
];
}
withStubResponse
:
^
OHHTTPStubsResponse
*
_Nonnull
(
NSURLRequest
*
_Nonnull
request
)
{
return
[
OHHTTPStubsResponse
responseWithKey
:
@"testCustomerDuplicateEmail"
];
}];
XCTestExpectation
*
expectation
=
[
self
expectationWithDescription
:
NSStringFromSelector
(
_cmd
)];
BUYAccountCredentialItem
*
emailItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"email"
value
:
self
.
customerEmail
];
BUYAccountCredentialItem
*
passwordItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"password"
value
:
self
.
customerPassword
];
BUYAccountCredentialItem
*
passwordConfItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"password_confirmation"
value
:
self
.
customerPassword
];
BUYAccountCredentials
*
credentials
=
[
BUYAccountCredentials
credentialsWithItems
:@[
emailItem
,
passwordItem
,
passwordConfItem
]];
[
self
.
client
createCustomerWithCredentials
:
credentials
callback
:
^
(
BUYCustomer
*
customer
,
NSString
*
token
,
NSError
*
error
)
{
XCTAssertNil
(
customer
);
XCTAssertNotNil
(
error
);
NSArray
*
errors
=
[
BUYError
errorsFromSignUpJSON
:
error
.
userInfo
];
XCTAssertEqual
(
errors
.
count
,
1
);
BUYError
*
customerError
=
errors
[
0
];
XCTAssertEqualObjects
(
customerError
.
code
,
@"taken"
);
XCTAssertEqualObjects
(
customerError
.
options
[
@"rescue_from_duplicate"
],
@YES
);
XCTAssertEqualObjects
(
customerError
.
options
[
@"value"
],
self
.
customerEmail
);
[
expectation
fulfill
];
}];
[
self
waitForExpectationsWithTimeout
:
10
handler
:
^
(
NSError
*
_Nullable
error
)
{
XCTAssertNil
(
error
);
}];
}
-
(
void
)
testCustomerInvalidEmailPassword
{
[
OHHTTPStubs
stubRequestsPassingTest
:
^
BOOL
(
NSURLRequest
*
_Nonnull
request
)
{
return
[
self
shouldUseMocks
];
}
withStubResponse
:
^
OHHTTPStubsResponse
*
_Nonnull
(
NSURLRequest
*
_Nonnull
request
)
{
return
[
OHHTTPStubsResponse
responseWithKey
:
@"testCustomerInvalidEmailPassword"
];
}];
XCTestExpectation
*
expectation
=
[
self
expectationWithDescription
:
NSStringFromSelector
(
_cmd
)];
BUYAccountCredentialItem
*
emailItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"email"
value
:
@"a"
];
BUYAccountCredentialItem
*
passwordItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"password"
value
:
@"b"
];
BUYAccountCredentialItem
*
passwordConfItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"password_confirmation"
value
:
@"c"
];
BUYAccountCredentials
*
credentials
=
[
BUYAccountCredentials
credentialsWithItems
:@[
emailItem
,
passwordItem
,
passwordConfItem
]];
[
self
.
client
createCustomerWithCredentials
:
credentials
callback
:
^
(
BUYCustomer
*
customer
,
NSString
*
token
,
NSError
*
error
)
{
XCTAssertNil
(
customer
);
XCTAssertNotNil
(
error
);
NSArray
<
BUYError
*>
*
errors
=
[
BUYError
errorsFromSignUpJSON
:
error
.
userInfo
];
XCTAssertEqual
(
errors
.
count
,
3
);
BUYError
*
emailError
=
errors
[
0
];
XCTAssertEqualObjects
(
emailError
.
code
,
@"invalid"
);
BUYError
*
passwordConfError
=
errors
[
1
];
XCTAssertEqualObjects
(
passwordConfError
.
code
,
@"confirmation"
);
XCTAssertEqualObjects
(
passwordConfError
.
options
[
@"attribute"
],
@"Password"
);
BUYError
*
passwordError
=
errors
[
2
];
XCTAssertEqualObjects
(
passwordError
.
code
,
@"too_short"
);
XCTAssertEqualObjects
(
passwordError
.
options
[
@"count"
],
@5
);
[
expectation
fulfill
];
}];
[
self
waitForExpectationsWithTimeout
:
10
handler
:
^
(
NSError
*
_Nullable
error
)
{
XCTAssertNil
(
error
);
}];
}
-
(
void
)
testCustomerLogin
{
[
OHHTTPStubs
stubRequestsPassingTest
:
^
BOOL
(
NSURLRequest
*
_Nonnull
request
)
{
return
[
self
shouldUseMocks
];
}
withStubResponse
:
^
OHHTTPStubsResponse
*
_Nonnull
(
NSURLRequest
*
_Nonnull
request
)
{
return
[
OHHTTPStubsResponse
responseWithKey
:
@"testCustomerLogin"
];
}];
XCTestExpectation
*
expectation
=
[
self
expectationWithDescription
:
NSStringFromSelector
(
_cmd
)];
BUYAccountCredentialItem
*
emailItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"email"
value
:
self
.
customerEmail
];
BUYAccountCredentialItem
*
passwordItem
=
[
BUYAccountCredentialItem
itemWithKey
:
@"password"
value
:
self
.
customerPassword
];
BUYAccountCredentials
*
credentials
=
[
BUYAccountCredentials
credentialsWithItems
:@[
emailItem
,
passwordItem
]];
[
self
.
client
loginCustomerWithCredentials
:
credentials
callback
:
^
(
BUYCustomer
*
customer
,
NSString
*
token
,
NSError
*
error
)
{
XCTAssertNil
(
error
);
XCTAssertNotNil
(
customer
);
XCTAssertEqualObjects
(
customer
.
email
,
self
.
customerEmail
);
[
expectation
fulfill
];
}];
[
self
waitForExpectationsWithTimeout
:
10
handler
:
^
(
NSError
*
_Nullable
error
)
{
XCTAssertNil
(
error
);
}];
}
@end
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj
View file @
b952e5a3
...
@@ -262,6 +262,12 @@
...
@@ -262,6 +262,12 @@
9A3B2DDE1CD28D7300BFF49C
/* BUYSerializable.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DDC1CD28D6F00BFF49C
/* BUYSerializable.m */
;
};
9A3B2DDE1CD28D7300BFF49C
/* BUYSerializable.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DDC1CD28D6F00BFF49C
/* BUYSerializable.m */
;
};
9A3B2DE01CD28E9900BFF49C
/* BUYShopifyErrorCodes.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
;
};
9A3B2DE01CD28E9900BFF49C
/* BUYShopifyErrorCodes.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
;
};
9A3B2DE11CD28E9900BFF49C
/* BUYShopifyErrorCodes.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
;
};
9A3B2DE11CD28E9900BFF49C
/* BUYShopifyErrorCodes.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
;
};
9A3B2DE51CD2959900BFF49C
/* BUYCustomerTests.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DE41CD2959900BFF49C
/* BUYCustomerTests.m */
;
};
9A3B2DE71CD295D600BFF49C
/* BUYClientTest_Customer.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DE61CD295D600BFF49C
/* BUYClientTest_Customer.m */
;
};
9A3B2DEC1CD2990E00BFF49C
/* BUYError+BUYAdditions.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DE81CD2990E00BFF49C
/* BUYError+BUYAdditions.h */
;
};
9A3B2DED1CD2990E00BFF49C
/* BUYError+BUYAdditions.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DE81CD2990E00BFF49C
/* BUYError+BUYAdditions.h */
;
};
9A3B2DEE1CD2990E00BFF49C
/* BUYError+BUYAdditions.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DE91CD2990E00BFF49C
/* BUYError+BUYAdditions.m */
;
};
9A3B2DEF1CD2990E00BFF49C
/* BUYError+BUYAdditions.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A3B2DE91CD2990E00BFF49C
/* BUYError+BUYAdditions.m */
;
};
BE1007951B6038150031CEE7
/* BUYProductVariant+Options.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE1007931B6038150031CEE7
/* BUYProductVariant+Options.h */
;
};
BE1007951B6038150031CEE7
/* BUYProductVariant+Options.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE1007931B6038150031CEE7
/* BUYProductVariant+Options.h */
;
};
BE1007961B6038150031CEE7
/* BUYProductVariant+Options.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE1007941B6038150031CEE7
/* BUYProductVariant+Options.m */
;
};
BE1007961B6038150031CEE7
/* BUYProductVariant+Options.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE1007941B6038150031CEE7
/* BUYProductVariant+Options.m */
;
};
BE10079B1B6165EC0031CEE7
/* BUYOptionValueCell.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE1007991B6165EC0031CEE7
/* BUYOptionValueCell.h */
;
};
BE10079B1B6165EC0031CEE7
/* BUYOptionValueCell.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE1007991B6165EC0031CEE7
/* BUYOptionValueCell.h */
;
};
...
@@ -525,6 +531,10 @@
...
@@ -525,6 +531,10 @@
9A3B2DD91CD282DA00BFF49C
/* BUYClient_Internal.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYClient_Internal.h
;
sourceTree
=
"<group>"
;
};
9A3B2DD91CD282DA00BFF49C
/* BUYClient_Internal.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYClient_Internal.h
;
sourceTree
=
"<group>"
;
};
9A3B2DDC1CD28D6F00BFF49C
/* BUYSerializable.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYSerializable.m
;
sourceTree
=
"<group>"
;
};
9A3B2DDC1CD28D6F00BFF49C
/* BUYSerializable.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYSerializable.m
;
sourceTree
=
"<group>"
;
};
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYShopifyErrorCodes.h
;
sourceTree
=
"<group>"
;
};
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYShopifyErrorCodes.h
;
sourceTree
=
"<group>"
;
};
9A3B2DE41CD2959900BFF49C
/* BUYCustomerTests.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYCustomerTests.m
;
sourceTree
=
"<group>"
;
};
9A3B2DE61CD295D600BFF49C
/* BUYClientTest_Customer.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYClientTest_Customer.m
;
sourceTree
=
"<group>"
;
};
9A3B2DE81CD2990E00BFF49C
/* BUYError+BUYAdditions.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"BUYError+BUYAdditions.h"
;
sourceTree
=
"<group>"
;
};
9A3B2DE91CD2990E00BFF49C
/* BUYError+BUYAdditions.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYError+BUYAdditions.m"
;
sourceTree
=
"<group>"
;
};
BE1007931B6038150031CEE7
/* BUYProductVariant+Options.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"BUYProductVariant+Options.h"
;
sourceTree
=
"<group>"
;
};
BE1007931B6038150031CEE7
/* BUYProductVariant+Options.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"BUYProductVariant+Options.h"
;
sourceTree
=
"<group>"
;
};
BE1007941B6038150031CEE7
/* BUYProductVariant+Options.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYProductVariant+Options.m"
;
sourceTree
=
"<group>"
;
};
BE1007941B6038150031CEE7
/* BUYProductVariant+Options.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYProductVariant+Options.m"
;
sourceTree
=
"<group>"
;
};
BE1007991B6165EC0031CEE7
/* BUYOptionValueCell.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYOptionValueCell.h
;
sourceTree
=
"<group>"
;
};
BE1007991B6165EC0031CEE7
/* BUYOptionValueCell.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYOptionValueCell.h
;
sourceTree
=
"<group>"
;
};
...
@@ -943,6 +953,8 @@
...
@@ -943,6 +953,8 @@
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
,
9A3B2DDF1CD28E9900BFF49C
/* BUYShopifyErrorCodes.h */
,
9A3B2DE81CD2990E00BFF49C
/* BUYError+BUYAdditions.h */
,
9A3B2DE91CD2990E00BFF49C
/* BUYError+BUYAdditions.m */
,
BE33B4F91B177EC80067982B
/* BUYAddress+Additions.h */
,
BE33B4F91B177EC80067982B
/* BUYAddress+Additions.h */
,
BE33B4FA1B177EC80067982B
/* BUYAddress+Additions.m */
,
BE33B4FA1B177EC80067982B
/* BUYAddress+Additions.m */
,
F70CE40D1A8BF1D90055BEB8
/* BUYApplePayAdditions.h */
,
F70CE40D1A8BF1D90055BEB8
/* BUYApplePayAdditions.h */
,
...
@@ -1357,6 +1369,7 @@
...
@@ -1357,6 +1369,7 @@
901930E91BC5B9BC00D1134E
/* BUYProductVariant.m in Sources */
,
901930E91BC5B9BC00D1134E
/* BUYProductVariant.m in Sources */
,
901930EA1BC5B9BC00D1134E
/* BUYProductViewController.m in Sources */
,
901930EA1BC5B9BC00D1134E
/* BUYProductViewController.m in Sources */
,
841ADE021CB6C942000004B0
/* NSArray+BUYAdditions.m in Sources */
,
841ADE021CB6C942000004B0
/* NSArray+BUYAdditions.m in Sources */
,
901930EB1BC5B9BC00D1134E
/* NSDateFormatter+BUYAdditions.m in Sources */
,
901930EC1BC5B9BC00D1134E
/* BUYError.m in Sources */
,
901930EC1BC5B9BC00D1134E
/* BUYError.m in Sources */
,
841ADE0E1CB6C942000004B0
/* NSDecimalNumber+BUYAdditions.m in Sources */
,
841ADE0E1CB6C942000004B0
/* NSDecimalNumber+BUYAdditions.m in Sources */
,
901930ED1BC5B9BC00D1134E
/* BUYProductViewHeader.m in Sources */
,
901930ED1BC5B9BC00D1134E
/* BUYProductViewHeader.m in Sources */
,
...
@@ -1467,6 +1480,7 @@
...
@@ -1467,6 +1480,7 @@
BE9A64641B503CFB0033E558
/* BUYProductVariant.m in Sources */
,
BE9A64641B503CFB0033E558
/* BUYProductVariant.m in Sources */
,
BEB74A2E1B554E8B0005A300
/* BUYProductViewController.m in Sources */
,
BEB74A2E1B554E8B0005A300
/* BUYProductViewController.m in Sources */
,
841ADE011CB6C942000004B0
/* NSArray+BUYAdditions.m in Sources */
,
841ADE011CB6C942000004B0
/* NSArray+BUYAdditions.m in Sources */
,
90A446261B5EC03F009602AA
/* NSDateFormatter+BUYAdditions.m in Sources */
,
BE4734101B66C4EF00AA721A
/* BUYError.m in Sources */
,
BE4734101B66C4EF00AA721A
/* BUYError.m in Sources */
,
841ADE0D1CB6C942000004B0
/* NSDecimalNumber+BUYAdditions.m in Sources */
,
841ADE0D1CB6C942000004B0
/* NSDecimalNumber+BUYAdditions.m in Sources */
,
BEB74A741B5564380005A300
/* BUYProductViewHeader.m in Sources */
,
BEB74A741B5564380005A300
/* BUYProductViewHeader.m in Sources */
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment