Skip to content

Commit 343b450

Browse files
committed
Added LocalTestCase class that subclasses XCTestCase
1 parent 6df9c13 commit 343b450

File tree

5 files changed

+55
-4
lines changed

5 files changed

+55
-4
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import Foundation
2+
import XCTest
3+
import BigInt
4+
5+
import web3swift
6+
7+
// SuperClass that all local tests should be derived from
8+
// while this class does show up in the navigator, it has no associated tests
9+
class LocalTestCase: XCTestCase {
10+
static let url = URL.init(string: "http://127.0.0.1:8545")!
11+
let ganache = try! Web3.new(LocalTestCase.url)
12+
static var isSetUp = false
13+
14+
override class func setUp() {
15+
super.setUp()
16+
17+
// check to see if we need to run the one-time setup
18+
if isSetUp { return }
19+
isSetUp = true;
20+
21+
let web3 = try! Web3.new(LocalTestCase.url)
22+
23+
let block = try! web3.eth.getBlockNumber()
24+
if block >= 25 { return }
25+
26+
print("\n ****** Preloading Ganache (\(25 - block) blocks) *****\n")
27+
28+
let allAddresses = try! web3.eth.getAccounts()
29+
let sendToAddress = allAddresses[0]
30+
let contract = web3.contract(Web3.Utils.coldWalletABI, at: sendToAddress, abiVersion: 2)
31+
let value = Web3.Utils.parseToBigUInt("1.0", units: .eth)
32+
33+
let from = allAddresses[0]
34+
let writeTX = contract!.write("fallback")!
35+
writeTX.transactionOptions.from = from
36+
writeTX.transactionOptions.value = value
37+
writeTX.transactionOptions.gasLimit = .manual(78423)
38+
writeTX.transactionOptions.gasPrice = .manual(20000000000)
39+
40+
for _ in block..<25 {
41+
let _ = try! writeTX.sendPromise(password: "").wait()
42+
}
43+
}
44+
}

Tests/web3swiftTests/localTests/LocalTests.xctestplan

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
"RemoteParsingTests",
2222
"RemoteTests",
2323
"ST20AndSecurityTokenTests",
24-
"WebsocketTests"
24+
"WebsocketTests",
25+
"LocalTestCase"
2526
],
2627
"target" : {
2728
"containerPath" : "container:web3swift.xcodeproj",

Tests/web3swiftTests/remoteTests/RemoteTests.xctestplan

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949
"web3swift_numberFormattingUtil_Tests",
5050
"web3swift_personalSignature_Tests",
5151
"web3swift_promises_Tests",
52-
"web3swift_transactions_Tests"
52+
"web3swift_transactions_Tests",
53+
"LocalTestCase"
5354
],
5455
"target" : {
5556
"containerPath" : "container:web3swift.xcodeproj",

Tests/web3swiftTests/web3swift.xctestplan

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
"testTargets" : [
2020
{
2121
"parallelizable" : true,
22+
"skippedTests" : [
23+
"LocalTestCase"
24+
],
2225
"target" : {
2326
"containerPath" : "container:web3swift.xcodeproj",
2427
"identifier" : "139751B6219AF76D0044D2B0",

web3swift.xcodeproj/project.pbxproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
5CF7E8B0276B792A0009900F /* web3swiftEventloopTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF7E89F276B79280009900F /* web3swiftEventloopTests.swift */; };
194194
5CF7E8B1276B792A0009900F /* web3swiftAdvancedABIv2Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF7E8A0276B79290009900F /* web3swiftAdvancedABIv2Tests.swift */; };
195195
5CF7E8B2276B792A0009900F /* web3swiftEIP67Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF7E8A1276B79290009900F /* web3swiftEIP67Tests.swift */; };
196+
6029BE722817A4A8006FA0DF /* LocalTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6029BE712817A4A8006FA0DF /* LocalTestCase.swift */; };
196197
6049F410280616FC00DFE624 /* AbstractEnvelope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6049F409280616FC00DFE624 /* AbstractEnvelope.swift */; };
197198
6049F411280616FC00DFE624 /* EIP1559Envelope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6049F40A280616FC00DFE624 /* EIP1559Envelope.swift */; };
198199
6049F412280616FC00DFE624 /* EIP2718Envelope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6049F40B280616FC00DFE624 /* EIP2718Envelope.swift */; };
@@ -305,7 +306,6 @@
305306
3AA815372276E44100F5DB52 /* EthereumKeystoreV3.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EthereumKeystoreV3.swift; sourceTree = "<group>"; };
306307
3AA815392276E44100F5DB52 /* PlainKeystore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlainKeystore.swift; sourceTree = "<group>"; };
307308
3AA8153A2276E44100F5DB52 /* AbstractKeystore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AbstractKeystore.swift; sourceTree = "<group>"; };
308-
3AA8153B2276E44100F5DB52 /* KeystoreV3JSONStructure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeystoreV3JSONStructure.swift; sourceTree = "<group>"; };
309309
3AA8153D2276E44100F5DB52 /* BloomFilter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BloomFilter.swift; sourceTree = "<group>"; };
310310
3AA8153F2276E44100F5DB52 /* EthereumTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EthereumTransaction.swift; sourceTree = "<group>"; };
311311
3AA815412276E44100F5DB52 /* Web3+Wallet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Web3+Wallet.swift"; sourceTree = "<group>"; };
@@ -425,6 +425,7 @@
425425
5CF7E89F276B79280009900F /* web3swiftEventloopTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = web3swiftEventloopTests.swift; sourceTree = "<group>"; };
426426
5CF7E8A0276B79290009900F /* web3swiftAdvancedABIv2Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = web3swiftAdvancedABIv2Tests.swift; sourceTree = "<group>"; };
427427
5CF7E8A1276B79290009900F /* web3swiftEIP67Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = web3swiftEIP67Tests.swift; sourceTree = "<group>"; };
428+
6029BE712817A4A8006FA0DF /* LocalTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalTestCase.swift; sourceTree = "<group>"; };
428429
6049F409280616FC00DFE624 /* AbstractEnvelope.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AbstractEnvelope.swift; sourceTree = "<group>"; };
429430
6049F40A280616FC00DFE624 /* EIP1559Envelope.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EIP1559Envelope.swift; sourceTree = "<group>"; };
430431
6049F40B280616FC00DFE624 /* EIP2718Envelope.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EIP2718Envelope.swift; sourceTree = "<group>"; };
@@ -705,7 +706,6 @@
705706
3AA815372276E44100F5DB52 /* EthereumKeystoreV3.swift */,
706707
3AA815392276E44100F5DB52 /* PlainKeystore.swift */,
707708
3AA8153A2276E44100F5DB52 /* AbstractKeystore.swift */,
708-
3AA8153B2276E44100F5DB52 /* KeystoreV3JSONStructure.swift */,
709709
);
710710
path = KeystoreManager;
711711
sourceTree = "<group>";
@@ -1024,6 +1024,7 @@
10241024
E252E68126B542D000717C16 /* localTests */ = {
10251025
isa = PBXGroup;
10261026
children = (
1027+
6029BE712817A4A8006FA0DF /* LocalTestCase.swift */,
10271028
5C26D89F27F3725500431EB0 /* EIP1559BlockTests.swift */,
10281029
604FA4FE27ECBDC80021108F /* DataConversionTests.swift */,
10291030
5CF7E8A0276B79290009900F /* web3swiftAdvancedABIv2Tests.swift */,
@@ -1449,6 +1450,7 @@
14491450
5CF7E8B2276B792A0009900F /* web3swiftEIP67Tests.swift in Sources */,
14501451
5CF7E8AE276B792A0009900F /* web3swiftPromisesTests.swift in Sources */,
14511452
5CF7E8A2276B79290009900F /* web3swiftEIP681Tests.swift in Sources */,
1453+
6029BE722817A4A8006FA0DF /* LocalTestCase.swift in Sources */,
14521454
5CC0333A28023387006AD710 /* ST20AndSecurityTokenTests.swift in Sources */,
14531455
604FA4FF27ECBDC80021108F /* DataConversionTests.swift in Sources */,
14541456
5CF7E8B1276B792A0009900F /* web3swiftAdvancedABIv2Tests.swift in Sources */,

0 commit comments

Comments
 (0)