11using System ;
22using Microsoft . VisualStudio . TestTools . UnitTesting ;
33using StellarDotnetSdk . Soroban ;
4+ using SCVal = StellarDotnetSdk . Soroban . SCVal ;
45
56namespace StellarDotnetSdk . Tests ;
67
78[ TestClass ]
89public class AddressTest
910{
1011 [ TestMethod ]
11- public void TestAccountIdWithInvalidArgument ( )
12+ [ DataRow ( "Invalid id" ) ]
13+ [ DataRow ( "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ" ,
14+ DisplayName = "Valid muxed account ID" ) ]
15+ [ DataRow ( "LAAABKAZRNPCLGKMDSS3AVLPV2ZHGJNMORRJNFCBITQKOQDNKAPIUSGG" , DisplayName = "Valid liquidity pool ID" ) ]
16+ [ DataRow ( "GC5ZDZL56FJT75QOWB4OH7KBPBFBBYIJCDNTUNTB3QRFV4Z2IVUE6ES" , DisplayName = "Invalid account ID" ) ]
17+ [ ExpectedException ( typeof ( ArgumentException ) ) ]
18+ public void TestAccountIdWithInvalidArgument ( string id )
1219 {
13- const string invalidAccountId = "Invalid id" ;
14- var ex = Assert . ThrowsException < ArgumentException > ( ( ) => new SCAccountId ( invalidAccountId ) ) ;
15- Assert . IsTrue ( ex . Message . Contains ( "Invalid account ID" ) ) ;
20+ _ = new ScAccountId ( id ) ;
1621 }
1722
1823 [ TestMethod ]
19- public void TestContractIdWithInvalidArgument ( )
24+ [ DataRow ( "Invalid id" ) ]
25+ [ DataRow ( "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ" ,
26+ DisplayName = "Valid muxed account ID" ) ]
27+ [ DataRow ( "GDWIZBODB4V7Q4V5TS4OMPUMDDTDNXMFQOSLVE6JG7PL4MHPTG6XO43Q" , DisplayName = "Valid account ID" ) ]
28+ [ DataRow ( "BAAKEZMZYI3VFSJMHZ2PMC3SBANQWP2LDKBVH42XQSHWTSBOH7TDOPHPFA" , DisplayName = "Valid claimable balance ID" ) ]
29+ [ DataRow ( "LAAABKAZRNPCLGKMDSS3AVLPV2ZHGJNMORRJNFCBITQKOQDNKAPIUSGG" , DisplayName = "Valid liquidity pool ID" ) ]
30+ [ DataRow ( "CBFZDBUL3OC2VRMCFKTV4G6H5R5FNRLDVCIE536CRWWF4RKXWGTSSLD" , DisplayName = "Invalid contract ID" ) ]
31+ [ ExpectedException ( typeof ( ArgumentException ) ) ]
32+ public void TestContractIdWithInvalidArgument ( string id )
2033 {
21- const string invalidContractId = "Invalid id" ;
22- var ex = Assert . ThrowsException < ArgumentException > ( ( ) => new SCContractId ( invalidContractId ) ) ;
23- Assert . AreEqual ( "Invalid contract id (Parameter 'value')" , ex . Message ) ;
34+ _ = new ScContractId ( id ) ;
35+ }
36+
37+
38+ [ TestMethod ]
39+ [ ExpectedException ( typeof ( ArgumentException ) ) ]
40+ [ DataRow ( "Invalid id" ) ]
41+ [ DataRow ( "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ" ,
42+ DisplayName = "Valid muxed account ID" ) ]
43+ [ DataRow ( "GDWIZBODB4V7Q4V5TS4OMPUMDDTDNXMFQOSLVE6JG7PL4MHPTG6XO43Q" , DisplayName = "Valid account ID" ) ]
44+ [ DataRow ( "0000a8198b5e25994c1ca5b0556faeb27325ac746296944144e0a7406d501e8a" ,
45+ DisplayName = "Valid liquidity pool ID but in hex format" ) ]
46+ [ DataRow ( "LAARAHN7HK7EW57IB6FK5SOZIXXK56GKBOMSVJQTMRHOTABLMA2A5VH" , DisplayName = "Invalid liquidity pool ID" ) ]
47+ public void TestLiquidityPoolWithInvalidArgument ( string id )
48+ {
49+ _ = new ScLiquidityPoolId ( id ) ;
50+ }
51+
52+ [ TestMethod ]
53+ [ ExpectedException ( typeof ( ArgumentException ) ) ]
54+ [ DataRow ( "Invalid id" ) ]
55+ [ DataRow ( "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ" ,
56+ DisplayName = "Valid muxed account ID" ) ]
57+ [ DataRow ( "GDWIZBODB4V7Q4V5TS4OMPUMDDTDNXMFQOSLVE6JG7PL4MHPTG6XO43Q" , DisplayName = "Valid account ID" ) ]
58+ [ DataRow ( "00f6d640e0264946d35889231ce65dd63699e90dbcedea642b2d98ead157ee8758" ,
59+ DisplayName = "Valid claimable balance ID but in hex format" ) ]
60+ [ DataRow ( "BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4T" , DisplayName = "Invalid claimable balance ID" ) ]
61+ public void TestClaimableBalanceWithInvalidArgument ( string id )
62+ {
63+ _ = new ScClaimableBalanceId ( id ) ;
64+ }
65+
66+ [ TestMethod ]
67+ [ ExpectedException ( typeof ( ArgumentException ) ) ]
68+ [ DataRow ( "Invalid id" ) ]
69+ [ DataRow ( "GDWIZBODB4V7Q4V5TS4OMPUMDDTDNXMFQOSLVE6JG7PL4MHPTG6XO43Q" , DisplayName = "Valid account ID" ) ]
70+ [ DataRow ( "LAAABKAZRNPCLGKMDSS3AVLPV2ZHGJNMORRJNFCBITQKOQDNKAPIUSGG" , DisplayName = "Valid liquidity pool ID" ) ]
71+ [ DataRow ( "BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4TU" , DisplayName = "Valid claimable balance ID" ) ]
72+ [ DataRow ( "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJU" ,
73+ DisplayName = "Invalid account ID" ) ]
74+ public void TestMuxedAccountWithInvalidArgument ( string id )
75+ {
76+ _ = new ScMuxedAccountId ( id ) ;
2477 }
2578
2679 [ TestMethod ]
2780 public void TestAccountIdWithValidArgument ( )
2881 {
29- var scAccountId = new SCAccountId ( "GCZFMH32MF5EAWETZTKF3ZV5SEVJPI53UEMDNSW55WBR75GMZJU4U573" ) ;
82+ var scAccountId = new ScAccountId ( "GCZFMH32MF5EAWETZTKF3ZV5SEVJPI53UEMDNSW55WBR75GMZJU4U573" ) ;
3083
3184 // Act
32- var scAccountIdXdrBase64 = scAccountId . ToXdrBase64 ( ) ;
33- var fromXdrBase64ScAccountId = ( SCAccountId ) SCVal . FromXdrBase64 ( scAccountIdXdrBase64 ) ;
85+ var xdrBase64 = scAccountId . ToXdrBase64 ( ) ;
86+ var decodedAccountId = ( ScAccountId ) SCVal . FromXdrBase64 ( xdrBase64 ) ;
3487
3588 // Assert
36- Assert . AreEqual ( scAccountId . InnerValue , fromXdrBase64ScAccountId . InnerValue ) ;
89+ Assert . AreEqual ( scAccountId . InnerValue , decodedAccountId . InnerValue ) ;
3790 }
3891
3992 [ TestMethod ]
4093 public void TestContractIdWithValidArgument ( )
4194 {
42- var scContractId = new SCContractId ( "CAC2UYJQMC4ISUZ5REYB2AMDC44YKBNZWG4JB6N6GBL66CEKQO3RDSAB" ) ;
95+ var scContractId = new ScContractId ( "CAC2UYJQMC4ISUZ5REYB2AMDC44YKBNZWG4JB6N6GBL66CEKQO3RDSAB" ) ;
96+
97+ // Act
98+ var xdrBase64 = scContractId . ToXdrBase64 ( ) ;
99+ var decodedContractId = ( ScContractId ) SCVal . FromXdrBase64 ( xdrBase64 ) ;
100+
101+ // Assert
102+ Assert . AreEqual ( scContractId . InnerValue , decodedContractId . InnerValue ) ;
103+ }
104+
105+ [ TestMethod ]
106+ [ DataRow ( "BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4TU" ) ]
107+ public void TestClaimableBalanceWithValidArgument ( string id )
108+ {
109+ var claimableBalanceId = new ScClaimableBalanceId ( id ) ;
110+
111+ // Act
112+ var xdrBase64 = claimableBalanceId . ToXdrBase64 ( ) ;
113+ var decodedClaimableBalanceId = ( ScClaimableBalanceId ) SCVal . FromXdrBase64 ( xdrBase64 ) ;
114+
115+ // Assert
116+ Assert . AreEqual ( claimableBalanceId . InnerValue , decodedClaimableBalanceId . InnerValue ) ;
117+ }
118+
119+ [ TestMethod ]
120+ [ DataRow ( "LAARAHN7HK7EW57IB6FK5SOZIXXK56GKBOMSVJQTMRHOTABLMA2A5VHB" ) ]
121+ [ DataRow ( "LAAAMWWZQUAU443Y4OAP22N2JDL2GEE5XVXDP5FSVIIWFLP3JD2M2YCG" ) ]
122+ public void TestLiquidityPoolWithValidArgument ( string id )
123+ {
124+ var liquidityPoolId = new ScLiquidityPoolId ( id ) ;
125+
126+ // Act
127+ var xdrBase64 = liquidityPoolId . ToXdrBase64 ( ) ;
128+ var decodedLiquidityPoolId = ( ScLiquidityPoolId ) SCVal . FromXdrBase64 ( xdrBase64 ) ;
129+
130+ // Assert
131+ Assert . AreEqual ( liquidityPoolId . InnerLiquidityPoolId , decodedLiquidityPoolId . InnerLiquidityPoolId ) ;
132+ }
133+
134+ [ TestMethod ]
135+ [ DataRow ( "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ" ) ]
136+ [ DataRow ( "MAAAAAAAAAAAACZPKFNFGLIWAV45NTUVN6G7CWYS3GGYLONUBFC5ICGJXSRT2JFFZA5VA" ) ]
137+ [ DataRow ( "MAAAAAAAAAAAAC5OILZZBNM3E4JSWOEGLPA3YJ6EIFZLMOC5VZR4CMIKBR62SU4BRCDDK" ) ]
138+ [ DataRow ( "MAAAAAAAAAAAAC4N3AYUY6MEGEP2IXWKNTHWNOEUDY3VYMRNGTICZE726IBULR76S3PWW" ) ]
139+ public void TestMuxedAccountWithValidArgument ( string id )
140+ {
141+ var muxedAccountId = new ScMuxedAccountId ( id ) ;
43142
44143 // Act
45- var scContractIdXdrBase64 = scContractId . ToXdrBase64 ( ) ;
46- var fromXdrBase64ScContractId = ( SCContractId ) SCVal . FromXdrBase64 ( scContractIdXdrBase64 ) ;
144+ var xdrBase64 = muxedAccountId . ToXdrBase64 ( ) ;
145+ var decodedMuxedAccountId = ( ScMuxedAccountId ) SCVal . FromXdrBase64 ( xdrBase64 ) ;
47146
48147 // Assert
49- Assert . AreEqual ( scContractId . InnerValue , fromXdrBase64ScContractId . InnerValue ) ;
148+ Assert . AreEqual ( muxedAccountId . InnerValue , decodedMuxedAccountId . InnerValue ) ;
50149 }
51150}
0 commit comments