implement import helped classes, refactoring EDDN message parse
This commit is contained in:
@@ -9,6 +9,11 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.trader.TestUtils;
|
||||
import ru.trader.emdn.entities.*;
|
||||
import ru.trader.store.imp.ImportDataError;
|
||||
import ru.trader.store.imp.entities.ItemData;
|
||||
import ru.trader.store.imp.entities.ShipData;
|
||||
import ru.trader.store.imp.entities.StarSystemData;
|
||||
import ru.trader.store.imp.entities.StationData;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -28,38 +33,50 @@ public class ParserTest extends Assert {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNotNull(message);
|
||||
assertEquals("http://schemas.elite-markets.net/eddn/commodity/1", message.getSchemaRef());
|
||||
assertEquals(SUPPORT_VERSIONS.V1, message.getVersion());
|
||||
Header header = message.getHeader();
|
||||
assertNotNull(header);
|
||||
assertEquals("abcdef0123456789", header.getUploaderId());
|
||||
assertEquals("My Awesome Market Uploader", header.getSoftwareName());
|
||||
assertEquals("v3.14", header.getSoftwareVersion());
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 13, 35), header.getGatewayTimestamp());
|
||||
Body body = message.getBody();
|
||||
assertNotNull(body);
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), body.getTimestamp());
|
||||
StarSystem system = body.getSystem();
|
||||
assertNotNull(system);
|
||||
assertEquals("Eranin", system.getName());
|
||||
assertNull(system.getId());
|
||||
assertNull(system.getAddress());
|
||||
Station station = body.getStation();
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Eranin", data.getName());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Azeban Orbital", station.getName());
|
||||
assertNull(station.getId());
|
||||
Collection<Item> items = body.getCommodities();
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), station.getModifiedTime());
|
||||
Collection<ItemData> items = station.getCommodities();
|
||||
assertNotNull(items);
|
||||
assertEquals(1, items.size());
|
||||
Item item = items.iterator().next();
|
||||
ItemData item = items.iterator().next();
|
||||
assertNotNull(item);
|
||||
assertEquals("Gold", item.getName());
|
||||
assertNull(item.getId());
|
||||
assertEquals(1024, item.getBuyPrice());
|
||||
assertEquals(1024, item.getSellOfferPrice());
|
||||
assertEquals(7, item.getSupply());
|
||||
assertEquals(LEVEL_TYPE.LOW, item.getSupplyLevel());
|
||||
assertEquals(1138, item.getSellPrice());
|
||||
assertEquals(1138, item.getBuyOfferPrice());
|
||||
assertEquals(42, item.getDemand());
|
||||
assertEquals(LEVEL_TYPE.MEDIUM, item.getDemandLevel());
|
||||
|
||||
assertNull(data.getId());
|
||||
assertNull(data.getFaction());
|
||||
assertNull(data.getGovernment());
|
||||
assertNull(data.getPower());
|
||||
assertNull(data.getPowerState());
|
||||
assertNull(station.getId());
|
||||
assertNull(station.getType());
|
||||
assertNull(station.getFaction());
|
||||
assertNull(station.getGovernment());
|
||||
assertNull(station.getEconomic());
|
||||
assertNull(station.getSubEconomic());
|
||||
assertNull(station.getServices());
|
||||
assertNull(station.getShips());
|
||||
assertNull(station.getModules());
|
||||
assertNull(item.getId());
|
||||
assertNull(item.getGroup());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,53 +89,64 @@ public class ParserTest extends Assert {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNotNull(message);
|
||||
assertEquals("http://schemas.elite-markets.net/eddn/commodity/2", message.getSchemaRef());
|
||||
assertEquals(SUPPORT_VERSIONS.V2, message.getVersion());
|
||||
Header header = message.getHeader();
|
||||
assertNotNull(header);
|
||||
assertEquals("abcdef0123456789", header.getUploaderId());
|
||||
assertEquals("My Awesome Market Uploader", header.getSoftwareName());
|
||||
assertEquals("v3.14", header.getSoftwareVersion());
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 13, 35), header.getGatewayTimestamp());
|
||||
Body body = message.getBody();
|
||||
assertNotNull(body);
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), body.getTimestamp());
|
||||
StarSystem system = body.getSystem();
|
||||
assertNotNull(system);
|
||||
assertEquals("Eranin", system.getName());
|
||||
assertNull(system.getId());
|
||||
assertNull(system.getAddress());
|
||||
Station station = body.getStation();
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Eranin", data.getName());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Azeban Orbital", station.getName());
|
||||
assertNull(station.getId());
|
||||
Collection<Item> items = body.getCommodities();
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), station.getModifiedTime());
|
||||
Collection<ItemData> items = station.getCommodities();
|
||||
assertNotNull(items);
|
||||
assertEquals(2, items.size());
|
||||
int found = 0;
|
||||
for (Item item : items) {
|
||||
for (ItemData item : items) {
|
||||
assertNotNull(item);
|
||||
if ("Gold".equals(item.getName())){
|
||||
found++;
|
||||
assertNull(item.getId());
|
||||
assertEquals(1024, item.getBuyPrice());
|
||||
assertEquals(1024, item.getSellOfferPrice());
|
||||
assertEquals(7, item.getSupply());
|
||||
assertEquals(LEVEL_TYPE.LOW, item.getSupplyLevel());
|
||||
assertEquals(1138, item.getSellPrice());
|
||||
assertEquals(1138, item.getBuyOfferPrice());
|
||||
assertEquals(42, item.getDemand());
|
||||
assertEquals(LEVEL_TYPE.MEDIUM, item.getDemandLevel());
|
||||
assertNull(item.getId());
|
||||
assertNull(item.getGroup());
|
||||
} else
|
||||
if ("Explosives".equals(item.getName())){
|
||||
found++;
|
||||
assertNull(item.getId());
|
||||
assertEquals(999, item.getBuyPrice());
|
||||
assertEquals(999, item.getSellOfferPrice());
|
||||
assertEquals(1500, item.getSupply());
|
||||
assertEquals(LEVEL_TYPE.LOW, item.getSupplyLevel());
|
||||
assertEquals(0, item.getSellPrice());
|
||||
assertEquals(0, item.getBuyOfferPrice());
|
||||
assertEquals(0, item.getDemand());
|
||||
assertNull(item.getDemandLevel());
|
||||
assertNull(item.getId());
|
||||
assertNull(item.getGroup());
|
||||
}
|
||||
}
|
||||
assertEquals("Expected items not found", 2, found);
|
||||
|
||||
assertNull(data.getId());
|
||||
assertNull(data.getFaction());
|
||||
assertNull(data.getGovernment());
|
||||
assertNull(data.getPower());
|
||||
assertNull(data.getPowerState());
|
||||
assertNull(station.getId());
|
||||
assertNull(station.getType());
|
||||
assertNull(station.getFaction());
|
||||
assertNull(station.getGovernment());
|
||||
assertNull(station.getEconomic());
|
||||
assertNull(station.getSubEconomic());
|
||||
assertNull(station.getServices());
|
||||
assertNull(station.getShips());
|
||||
assertNull(station.getModules());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,38 +158,51 @@ public class ParserTest extends Assert {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNotNull(message);
|
||||
assertEquals("http://schemas.elite-markets.net/eddn/commodity/1", message.getSchemaRef());
|
||||
assertEquals(SUPPORT_VERSIONS.V1, message.getVersion());
|
||||
Header header = message.getHeader();
|
||||
assertNotNull(header);
|
||||
assertEquals("abcdef0123456789", header.getUploaderId());
|
||||
assertEquals("My Awesome Market Uploader", header.getSoftwareName());
|
||||
assertEquals("v3.14", header.getSoftwareVersion());
|
||||
assertNull(header.getGatewayTimestamp());
|
||||
Body body = message.getBody();
|
||||
assertNotNull(body);
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), body.getTimestamp());
|
||||
StarSystem system = body.getSystem();
|
||||
assertNotNull(system);
|
||||
assertEquals("Eranin", system.getName());
|
||||
assertNull(system.getId());
|
||||
assertNull(system.getAddress());
|
||||
Station station = body.getStation();
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Eranin", data.getName());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Azeban Orbital", station.getName());
|
||||
assertNull(station.getId());
|
||||
Collection<Item> items = body.getCommodities();
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), station.getModifiedTime());
|
||||
Collection<ItemData> items = station.getCommodities();
|
||||
assertNotNull(items);
|
||||
assertEquals(1, items.size());
|
||||
Item item = items.iterator().next();
|
||||
ItemData item = items.iterator().next();
|
||||
assertNotNull(item);
|
||||
assertEquals("Gold", item.getName());
|
||||
assertNull(item.getId());
|
||||
assertEquals(1024, item.getBuyPrice());
|
||||
assertEquals(1024, item.getSellOfferPrice());
|
||||
assertEquals(7, item.getSupply());
|
||||
assertNull(item.getSupplyLevel());
|
||||
assertEquals(1138, item.getSellPrice());
|
||||
assertEquals(1138, item.getBuyOfferPrice());
|
||||
assertEquals(42, item.getDemand());
|
||||
assertNull(item.getDemandLevel());
|
||||
|
||||
assertNull(data.getId());
|
||||
assertNull(data.getFaction());
|
||||
assertNull(data.getGovernment());
|
||||
assertNull(data.getPower());
|
||||
assertNull(data.getPowerState());
|
||||
assertNull(station.getId());
|
||||
assertNull(station.getType());
|
||||
assertNull(station.getFaction());
|
||||
assertNull(station.getGovernment());
|
||||
assertNull(station.getEconomic());
|
||||
assertNull(station.getSubEconomic());
|
||||
assertNull(station.getServices());
|
||||
assertNull(station.getShips());
|
||||
assertNull(station.getModules());
|
||||
assertNull(item.getId());
|
||||
assertNull(item.getGroup());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,39 +215,52 @@ public class ParserTest extends Assert {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNotNull(message);
|
||||
assertEquals("http://schemas.elite-markets.net/eddn/commodity/2", message.getSchemaRef());
|
||||
assertEquals(SUPPORT_VERSIONS.V2, message.getVersion());
|
||||
Header header = message.getHeader();
|
||||
assertNotNull(header);
|
||||
assertEquals("abcdef0123456789", header.getUploaderId());
|
||||
assertEquals("My Awesome Market Uploader", header.getSoftwareName());
|
||||
assertEquals("v3.14", header.getSoftwareVersion());
|
||||
assertNull(header.getGatewayTimestamp());
|
||||
Body body = message.getBody();
|
||||
assertNotNull(body);
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), body.getTimestamp());
|
||||
StarSystem system = body.getSystem();
|
||||
assertNotNull(system);
|
||||
assertEquals("Eranin", system.getName());
|
||||
assertNull(system.getId());
|
||||
assertNull(system.getAddress());
|
||||
Station station = body.getStation();
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Eranin", data.getName());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Azeban Orbital", station.getName());
|
||||
assertNull(station.getId());
|
||||
Collection<Item> items = body.getCommodities();
|
||||
assertEquals(LocalDateTime.of(2014, 11, 17, 12, 34, 56), station.getModifiedTime());
|
||||
Collection<ItemData> items = station.getCommodities();
|
||||
assertNotNull(items);
|
||||
assertEquals(1, items.size());
|
||||
for (Item item : items) {
|
||||
for (ItemData item : items) {
|
||||
assertNotNull(item);
|
||||
assertEquals("Gold", item.getName());
|
||||
assertNull(item.getId());
|
||||
assertEquals(1024, item.getBuyPrice());
|
||||
assertEquals(1024, item.getSellOfferPrice());
|
||||
assertEquals(7, item.getSupply());
|
||||
assertNull(item.getSupplyLevel());
|
||||
assertEquals(1138, item.getSellPrice());
|
||||
assertEquals(1138, item.getBuyOfferPrice());
|
||||
assertEquals(42, item.getDemand());
|
||||
assertNull(item.getDemandLevel());
|
||||
assertNull(item.getId());
|
||||
assertNull(item.getGroup());
|
||||
}
|
||||
|
||||
assertNull(data.getId());
|
||||
assertNull(data.getFaction());
|
||||
assertNull(data.getGovernment());
|
||||
assertNull(data.getPower());
|
||||
assertNull(data.getPowerState());
|
||||
assertNull(station.getId());
|
||||
assertNull(station.getType());
|
||||
assertNull(station.getFaction());
|
||||
assertNull(station.getGovernment());
|
||||
assertNull(station.getEconomic());
|
||||
assertNull(station.getSubEconomic());
|
||||
assertNull(station.getServices());
|
||||
assertNull(station.getShips());
|
||||
assertNull(station.getModules());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,7 +280,18 @@ public class ParserTest extends Assert {
|
||||
try (InputStream is = getClass().getResourceAsStream("/emdn/v2e.json")) {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNull(message);
|
||||
assertNotNull(message);
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Eranin", data.getName());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Azeban Orbital", station.getName());
|
||||
exception.expect(ImportDataError.class);
|
||||
station.getCommodities();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,33 +328,28 @@ public class ParserTest extends Assert {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNotNull(message);
|
||||
assertEquals("http://schemas.elite-markets.net/eddn/shipyard/1", message.getSchemaRef());
|
||||
assertEquals(SUPPORT_VERSIONS.V1_SHIPYARD, message.getVersion());
|
||||
Header header = message.getHeader();
|
||||
assertNotNull(header);
|
||||
assertEquals("Marek Ce'ex", header.getUploaderId());
|
||||
assertEquals("E:D Market Connector [Mac OS]", header.getSoftwareName());
|
||||
assertEquals("2.1.6.1", header.getSoftwareVersion());
|
||||
assertEquals(LocalDateTime.of(2016, 10, 5, 13, 53, 33, 930428000), header.getGatewayTimestamp());
|
||||
Body body = message.getBody();
|
||||
assertNotNull(body);
|
||||
assertEquals(LocalDateTime.of(2016, 10, 5, 13, 53, 25), body.getTimestamp());
|
||||
StarSystem system = body.getSystem();
|
||||
assertNotNull(system);
|
||||
assertEquals("Venegana", system.getName());
|
||||
assertNull(system.getId());
|
||||
assertNull(system.getAddress());
|
||||
Station station = body.getStation();
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Venegana", data.getName());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Shull Ring", station.getName());
|
||||
assertNull(station.getId());
|
||||
Collection<Item> items = body.getCommodities();
|
||||
assertNotNull(items);
|
||||
assertEquals(0, items.size());
|
||||
Collection<Ship> ships = body.getShips();
|
||||
assertEquals(LocalDateTime.of(2016, 10, 5, 13, 53, 25), station.getModifiedTime());
|
||||
Collection<ShipData> ships = station.getShips();
|
||||
assertNotNull(ships);
|
||||
assertEquals(8, ships.size());
|
||||
int found = 0;
|
||||
for (Ship ship : ships) {
|
||||
for (ShipData ship : ships) {
|
||||
assertNotNull(ship);
|
||||
if ("Sidewinder".equals(ship.getName())){
|
||||
found++;
|
||||
@@ -303,6 +363,21 @@ public class ParserTest extends Assert {
|
||||
}
|
||||
}
|
||||
assertEquals("Expected ships not found", 2, found);
|
||||
|
||||
assertNull(data.getId());
|
||||
assertNull(data.getFaction());
|
||||
assertNull(data.getGovernment());
|
||||
assertNull(data.getPower());
|
||||
assertNull(data.getPowerState());
|
||||
assertNull(station.getId());
|
||||
assertNull(station.getType());
|
||||
assertNull(station.getFaction());
|
||||
assertNull(station.getGovernment());
|
||||
assertNull(station.getEconomic());
|
||||
assertNull(station.getSubEconomic());
|
||||
assertNull(station.getServices());
|
||||
assertNull(station.getCommodities());
|
||||
assertNull(station.getModules());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -315,33 +390,30 @@ public class ParserTest extends Assert {
|
||||
String json = TestUtils.read(is);
|
||||
Message message = parser.parse(json);
|
||||
assertNotNull(message);
|
||||
assertEquals("http://schemas.elite-markets.net/eddn/shipyard/2", message.getSchemaRef());
|
||||
assertEquals(SUPPORT_VERSIONS.V2_SHIPYARD, message.getVersion());
|
||||
Header header = message.getHeader();
|
||||
assertNotNull(header);
|
||||
assertEquals("Amadeus Sheperd", header.getUploaderId());
|
||||
assertEquals("E:D Market Connector [Windows]", header.getSoftwareName());
|
||||
assertEquals("2.1.7.2", header.getSoftwareVersion());
|
||||
assertEquals(LocalDateTime.of(2016, 10, 5, 13, 16, 12, 490637000), header.getGatewayTimestamp());
|
||||
Body body = message.getBody();
|
||||
assertNotNull(body);
|
||||
assertEquals(LocalDateTime.of(2016, 10, 5, 13, 15, 51), body.getTimestamp());
|
||||
StarSystem system = body.getSystem();
|
||||
assertNotNull(system);
|
||||
assertEquals("Sothis", system.getName());
|
||||
assertNull(system.getId());
|
||||
assertNull(system.getAddress());
|
||||
Station station = body.getStation();
|
||||
StarSystemData data = message.getImportData();
|
||||
assertNotNull(data);
|
||||
assertEquals("Sothis", data.getName());
|
||||
assertNull(data.getId());
|
||||
Collection<StationData> stations = data.getStations();
|
||||
assertNotNull(stations);
|
||||
assertEquals(1, stations.size());
|
||||
StationData station = stations.iterator().next();
|
||||
assertNotNull(station);
|
||||
assertEquals("Newholm Station", station.getName());
|
||||
assertNull(station.getId());
|
||||
Collection<Item> items = body.getCommodities();
|
||||
assertNotNull(items);
|
||||
assertEquals(0, items.size());
|
||||
Collection<Ship> ships = body.getShips();
|
||||
assertEquals(LocalDateTime.of(2016, 10, 5, 13, 15, 51), station.getModifiedTime());
|
||||
Collection<ShipData> ships = station.getShips();
|
||||
assertNotNull(ships);
|
||||
assertEquals(5, ships.size());
|
||||
int found = 0;
|
||||
for (Ship ship : ships) {
|
||||
for (ShipData ship : ships) {
|
||||
assertNotNull(ship);
|
||||
if ("SideWinder".equals(ship.getName())){
|
||||
found++;
|
||||
@@ -355,6 +427,21 @@ public class ParserTest extends Assert {
|
||||
}
|
||||
}
|
||||
assertEquals("Expected ships not found", 2, found);
|
||||
|
||||
assertNull(data.getId());
|
||||
assertNull(data.getFaction());
|
||||
assertNull(data.getGovernment());
|
||||
assertNull(data.getPower());
|
||||
assertNull(data.getPowerState());
|
||||
assertNull(station.getId());
|
||||
assertNull(station.getType());
|
||||
assertNull(station.getFaction());
|
||||
assertNull(station.getGovernment());
|
||||
assertNull(station.getEconomic());
|
||||
assertNull(station.getSubEconomic());
|
||||
assertNull(station.getServices());
|
||||
assertNull(station.getCommodities());
|
||||
assertNull(station.getModules());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user