Search in sources :

Example 1 with Address

use of com.sputnik.ouidb.model.Address in project ouidb-to-json-publisher by jfisbein.

the class OUIDBConverterTest method convertToJson.

@Test
void convertToJson() {
    OUIDBConverter converter = new OUIDBConverter();
    Map<String, Organization> db = generateDb(5);
    String json = converter.convertToJson(db);
    List<Map<String, Object>> parsedJson = gson.fromJson(json, new TypeToken<List<Map<String, Object>>>() {
    }.getType());
    assertThat(parsedJson).hasSize(db.size());
    for (String prefix : db.keySet()) {
        Organization org = db.get(prefix);
        Optional<Map<String, Object>> jsonEntryOpt = parsedJson.stream().filter(m -> m.get("prefix").equals(prefix)).findFirst();
        assertThat(jsonEntryOpt).isPresent();
        Map<String, Object> jsonEntry = jsonEntryOpt.get();
        Map<String, Object> jsonOrg = (Map<String, Object>) jsonEntry.get("organization");
        assertThat(jsonOrg).containsEntry("name", org.getName());
        Map<String, Object> jsonAddress = (Map<String, Object>) jsonOrg.get("address");
        assertThat(jsonAddress).containsEntry("line1", org.getAddress().getLine1()).containsEntry("line2", org.getAddress().getLine2()).containsEntry("countryCode", org.getAddress().getCountryCode());
    }
}
Also used : IntStream(java.util.stream.IntStream) Organization(com.sputnik.ouidb.model.Organization) TypeToken(com.google.gson.reflect.TypeToken) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Address(com.sputnik.ouidb.model.Address) HashMap(java.util.HashMap) GsonBuilder(com.google.gson.GsonBuilder) Test(org.junit.jupiter.api.Test) List(java.util.List) TreeMap(java.util.TreeMap) Faker(com.github.javafaker.Faker) Gson(com.google.gson.Gson) Map(java.util.Map) Optional(java.util.Optional) Organization(com.sputnik.ouidb.model.Organization) TypeToken(com.google.gson.reflect.TypeToken) HashMap(java.util.HashMap) TreeMap(java.util.TreeMap) Map(java.util.Map) Test(org.junit.jupiter.api.Test)

Example 2 with Address

use of com.sputnik.ouidb.model.Address in project ouidb-to-json-publisher by jfisbein.

the class OUIDBConverterTest method generateRandomAddress.

private Address generateRandomAddress() {
    Address address = new Address();
    address.setCountryCode(faker.address().countryCode());
    address.setLine1(faker.address().streetAddress());
    address.setLine2(faker.address().secondaryAddress());
    return address;
}
Also used : Address(com.sputnik.ouidb.model.Address)

Example 3 with Address

use of com.sputnik.ouidb.model.Address in project ouidb-to-json-publisher by jfisbein.

the class OUIDBDownloader method parseDb.

protected Map<String, Organization> parseDb(Reader db) throws IOException {
    Map<String, Organization> response = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
    try (BufferedReader reader = new BufferedReader(db)) {
        String line;
        int counter = 0;
        Organization organization = null;
        while ((line = reader.readLine()) != null) {
            line = normalize(line);
            if (line.contains("(hex)")) {
                String[] split = StringUtils.splitByWholeSeparator(line, "(hex)");
                String prefix = normalizePrefix(split[0]);
                String organizationName = normalizeOrganizationName(split[1]);
                counter = 0;
                organization = new Organization(organizationName);
                organization.setAddress(new Address());
                response.put(prefix, organization);
            } else if (counter < 3 && organization != null && !line.contains("(base 16)")) {
                counter = fillAddress(line, counter, organization.getAddress());
            }
        }
    }
    if (response.isEmpty()) {
        throw new NoRecordsFoundException("No records found");
    }
    return response;
}
Also used : Organization(com.sputnik.ouidb.model.Organization) Address(com.sputnik.ouidb.model.Address) BufferedReader(java.io.BufferedReader) TreeMap(java.util.TreeMap) NoRecordsFoundException(com.sputnik.ouidb.exception.NoRecordsFoundException)

Aggregations

Address (com.sputnik.ouidb.model.Address)3 Organization (com.sputnik.ouidb.model.Organization)2 TreeMap (java.util.TreeMap)2 Faker (com.github.javafaker.Faker)1 Gson (com.google.gson.Gson)1 GsonBuilder (com.google.gson.GsonBuilder)1 TypeToken (com.google.gson.reflect.TypeToken)1 NoRecordsFoundException (com.sputnik.ouidb.exception.NoRecordsFoundException)1 BufferedReader (java.io.BufferedReader)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Optional (java.util.Optional)1 IntStream (java.util.stream.IntStream)1 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)1 Test (org.junit.jupiter.api.Test)1