Skip to content

Commit a733a28

Browse files
committed
AJ-872:add test case about BasicMktData and BasicInstrument
1 parent 6e5ab1b commit a733a28

2 files changed

Lines changed: 202 additions & 0 deletions

File tree

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package com.xxdb.data;
2+
3+
import com.xxdb.DBConnection;
4+
import org.junit.After;
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import java.io.IOException;
9+
import java.util.HashMap;
10+
import java.util.Map;
11+
import java.util.ResourceBundle;
12+
13+
import static com.xxdb.data.Entity.DATA_CATEGORY.SYSTEM;
14+
import static com.xxdb.data.Entity.DATA_TYPE.DT_INSTRUMENT;
15+
import static org.junit.Assert.assertEquals;
16+
17+
public class BasicInstrumentTest {
18+
private DBConnection conn;
19+
static ResourceBundle bundle = ResourceBundle.getBundle("com/xxdb/setup/settings");
20+
static String HOST = bundle.getString("HOST");
21+
static int PORT = Integer.parseInt(bundle.getString("PORT"));
22+
@Before
23+
public void setUp(){
24+
conn = new DBConnection();
25+
try{
26+
if(!conn.connect(HOST,PORT,"admin","123456")){
27+
throw new IOException("Failed to connect to 2xdb server");
28+
}
29+
}catch(IOException ex){
30+
ex.printStackTrace();
31+
}
32+
}
33+
34+
@After
35+
public void tearDown() throws Exception {
36+
conn.close();
37+
}
38+
@Test
39+
public void test_BasicInstrument_basic() throws IOException {
40+
String script = "dict = { \n" +
41+
" \"productType\": \"Option\",\n" +
42+
" \"optionType\": \"EuropeanOption\",\n" +
43+
" \"version\": 0,\n" +
44+
" \"instrumentId\": \"0001\",\n" +
45+
" \"nominal\": 100.0,\n" +
46+
" \"strike\": 100.0,\n" +
47+
" \"maturity\": 2022.08.09,\n" +
48+
" \"dayCountConvention\": \"ActualActual\",\n" +
49+
" \"payoffType\": \"Call\",\n" +
50+
" \"priceCurrency\": \"CNY\",\n" +
51+
" \"underlying\": \"EU_0001\"\n" +
52+
"}\n" +
53+
"ins = parseInstrument(dict)\n" +
54+
"ins;";
55+
BasicInstrument Instrument = (BasicInstrument)conn.run(script);
56+
System.out.println(Instrument.getString());
57+
assertEquals("Instrument<detail invisible>",Instrument.getString());
58+
assertEquals(DT_INSTRUMENT, Instrument.getDataType());
59+
assertEquals(SYSTEM, Instrument.getDataCategory());
60+
String re = null;
61+
try{
62+
Instrument.compareTo(Instrument);
63+
}catch(Exception ex){
64+
re =ex.getMessage();
65+
}
66+
assertEquals("BasicInstrument.compareTo not supported.",re);
67+
}
68+
69+
@Test
70+
public void test_BasicInstrument_upload() throws IOException {
71+
String script = "dict = { \n" +
72+
" \"productType\": \"Option\",\n" +
73+
" \"optionType\": \"EuropeanOption\",\n" +
74+
" \"version\": 0,\n" +
75+
" \"instrumentId\": \"0001\",\n" +
76+
" \"nominal\": 100.0,\n" +
77+
" \"strike\": 100.0,\n" +
78+
" \"maturity\": 2022.08.09,\n" +
79+
" \"dayCountConvention\": \"ActualActual\",\n" +
80+
" \"payoffType\": \"Call\",\n" +
81+
" \"priceCurrency\": \"CNY\",\n" +
82+
" \"underlying\": \"EU_0001\"\n" +
83+
"}\n" +
84+
"ins = parseInstrument(dict)\n" +
85+
"ins;";
86+
BasicInstrument Instrument = (BasicInstrument)conn.run(script);
87+
Map<String, Entity> upObj = new HashMap<String, Entity>();
88+
upObj.put("Instrument", (Entity) Instrument);
89+
String re = null;
90+
try{
91+
conn.upload(upObj);
92+
}catch(Exception ex){
93+
re =ex.getMessage();
94+
}
95+
assertEquals("Not support yet",re);
96+
}
97+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package com.xxdb.data;
2+
3+
import com.xxdb.DBConnection;
4+
import org.junit.After;
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import java.io.IOException;
9+
import java.util.HashMap;
10+
import java.util.Map;
11+
import java.util.ResourceBundle;
12+
13+
import static com.xxdb.data.Entity.DATA_CATEGORY.SYSTEM;
14+
import static com.xxdb.data.Entity.DATA_TYPE.DT_MKTDATA;
15+
import static org.junit.Assert.assertEquals;
16+
17+
public class BasicMktDataTest {
18+
private DBConnection conn;
19+
static ResourceBundle bundle = ResourceBundle.getBundle("com/xxdb/setup/settings");
20+
static String HOST = bundle.getString("HOST");
21+
static int PORT = Integer.parseInt(bundle.getString("PORT"));
22+
@Before
23+
public void setUp(){
24+
conn = new DBConnection();
25+
try{
26+
if(!conn.connect(HOST,PORT,"admin","123456")){
27+
throw new IOException("Failed to connect to 2xdb server");
28+
}
29+
}catch(IOException ex){
30+
ex.printStackTrace();
31+
}
32+
}
33+
34+
@After
35+
public void tearDown() throws Exception {
36+
conn.close();
37+
}
38+
@Test
39+
public void test_BasicMktData_basic() throws IOException {
40+
String script = "aod = 2025.07.01\n" +
41+
"discountCurve = {\n" +
42+
" \"mktDataType\": \"Curve\",\n" +
43+
" \"curveType\": \"IrYieldCurve\",\n" +
44+
" \"version\": 0, \n" +
45+
" \"referenceDate\": aod,\n" +
46+
" \"currency\": \"CNY\",\n" +
47+
" \"dayCountConvention\": \"Actual365\",\n" +
48+
" \"compounding\": \"Continuous\",\n" +
49+
" \"interpMethod\": \"LinearInterp\",\n" +
50+
" \"extrapMethod\": \"FlatExtrap\",\n" +
51+
" \"dates\":[2025.07.07,2025.07.10,2025.07.17,2025.07.24,2025.08.04,2025.09.03,2025.10.09,2026.01.05,\n" +
52+
" 2026.04.03,2026.07.03,2027.01.04,2027.07.05,2028.07.03],\n" +
53+
" \"values\":[0.015785,0.015931,0.016183,0.016381,0.016493,0.016503,0.016478,0.016234,0.016321,\n" +
54+
" 0.016378,0.015508,0.015185,0.014901],\n" +
55+
" \"settlement\": aod+2\n" +
56+
"}\n" +
57+
"mktdata = parseMktData(discountCurve);\n" +
58+
"mktdata;";
59+
BasicMktData MktData = (BasicMktData)conn.run(script);
60+
System.out.println(MktData.getString());
61+
assertEquals("MktData<detail invisible>",MktData.getString());
62+
assertEquals(DT_MKTDATA, MktData.getDataType());
63+
assertEquals(SYSTEM,MktData.getDataCategory());
64+
String re = null;
65+
try{
66+
MktData.compareTo(MktData);
67+
}catch(Exception ex){
68+
re =ex.getMessage();
69+
}
70+
assertEquals("BasicMktData.compareTo not supported.",re);
71+
}
72+
73+
@Test
74+
public void test_BasicMktData_upload() throws IOException {
75+
String script = "aod = 2025.07.01\n" +
76+
"discountCurve = {\n" +
77+
" \"mktDataType\": \"Curve\",\n" +
78+
" \"curveType\": \"IrYieldCurve\",\n" +
79+
" \"version\": 0, \n" +
80+
" \"referenceDate\": aod,\n" +
81+
" \"currency\": \"CNY\",\n" +
82+
" \"dayCountConvention\": \"Actual365\",\n" +
83+
" \"compounding\": \"Continuous\",\n" +
84+
" \"interpMethod\": \"LinearInterp\",\n" +
85+
" \"extrapMethod\": \"FlatExtrap\",\n" +
86+
" \"dates\":[2025.07.07,2025.07.10,2025.07.17,2025.07.24,2025.08.04,2025.09.03,2025.10.09,2026.01.05,\n" +
87+
" 2026.04.03,2026.07.03,2027.01.04,2027.07.05,2028.07.03],\n" +
88+
" \"values\":[0.015785,0.015931,0.016183,0.016381,0.016493,0.016503,0.016478,0.016234,0.016321,\n" +
89+
" 0.016378,0.015508,0.015185,0.014901],\n" +
90+
" \"settlement\": aod+2\n" +
91+
"}\n" +
92+
"mktdata = parseMktData(discountCurve);\n" +
93+
"mktdata;";
94+
BasicMktData MktData = (BasicMktData)conn.run(script);
95+
Map<String, Entity> upObj = new HashMap<String, Entity>();
96+
upObj.put("MktData", (Entity) MktData);
97+
String re = null;
98+
try{
99+
conn.upload(upObj);
100+
}catch(Exception ex){
101+
re =ex.getMessage();
102+
}
103+
assertEquals("Not support yet",re);
104+
}
105+
}

0 commit comments

Comments
 (0)