@@ -61,4 +61,82 @@ public void verifyAc() throws UCloudException {
6161
6262 assertEquals ("cba5cf5ec4d4233d206b1b54951e3787350a642f" , cred .verifyAc (request ));
6363 }
64+
65+ static class DoubleRequest extends Request {
66+ DoubleRequest () { super (); }
67+
68+ @ UCloudParam ("Proportion" )
69+ private Double proportion ;
70+
71+ @ UCloudParam ("Region" )
72+ private String region ;
73+
74+ public String getRegion () {
75+ return region ;
76+ }
77+
78+ public void setRegion (String region ) {
79+ this .region = region ;
80+ }
81+
82+ public void setProportion (Double proportion ) {
83+ this .proportion = proportion ;
84+ }
85+
86+ public Double getProportion () {
87+ return proportion ;
88+ }
89+ }
90+
91+ @ Test
92+ public void verifyAcDoubleTailingZero () throws UCloudException {
93+ Credential cred = new Credential (pubKey , priKey );
94+ Assert .assertEquals (pubKey , cred .getPublicKey ());
95+ Assert .assertEquals (priKey , cred .getPrivateKey ());
96+
97+ cred .setPublicKey (pubKey );
98+ cred .setPrivateKey (priKey );
99+ Assert .assertEquals (pubKey , cred .getPublicKey ());
100+ Assert .assertEquals (priKey , cred .getPrivateKey ());
101+
102+ DoubleRequest request = new DoubleRequest ();
103+ request .setAction ("DescribeUHostInstance" );
104+ request .setRegion ("cn-bj2" );
105+ request .setProportion (35.0 );
106+
107+ String ac0 = cred .verifyAc (request );
108+
109+ // You can calculate sign by:
110+ // ucloud sign --private-key 46f09bb9fab4f12dfc160dae12273d5332b5debe \
111+ // --param Action=DescribeUHostInstance --param Region=cn-bj2 \
112+ // --param Proportion=35 \
113+ // --param PublicKey=ucloudsomeone@example.com1296235120854146121
114+ assertEquals ("da620b97de476947302291fc93a2d8b0710be328" , ac0 );
115+ }
116+
117+ @ Test
118+ public void verifyAcDoubleNoneTailingZero () throws UCloudException {
119+ Credential cred = new Credential (pubKey , priKey );
120+ Assert .assertEquals (pubKey , cred .getPublicKey ());
121+ Assert .assertEquals (priKey , cred .getPrivateKey ());
122+
123+ cred .setPublicKey (pubKey );
124+ cred .setPrivateKey (priKey );
125+ Assert .assertEquals (pubKey , cred .getPublicKey ());
126+ Assert .assertEquals (priKey , cred .getPrivateKey ());
127+
128+ DoubleRequest request = new DoubleRequest ();
129+ request .setAction ("DescribeUHostInstance" );
130+ request .setRegion ("cn-bj2" );
131+ request .setProportion (65.722 );
132+
133+ String ac0 = cred .verifyAc (request );
134+
135+ // You can calculate sign by:
136+ // ucloud sign --private-key 46f09bb9fab4f12dfc160dae12273d5332b5debe \
137+ // --param Action=DescribeUHostInstance --param Region=cn-bj2 \
138+ // --param Proportion=65.722 \
139+ // --param PublicKey=ucloudsomeone@example.com1296235120854146121
140+ assertEquals ("5e39dd48144d6a075328e56a6c5e9df6c39ae939" , ac0 );
141+ }
64142}
0 commit comments