package com.apothesource.pillfill.rxnorm.datamodel.ndf;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.hamcrest.Matchers;
import org.junit.Test;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import static org.junit.Assert.assertThat;
/**
* Created by "Michael on 7/16/15.
*/
public class NdfrtGroupConceptTest {
private Gson gson = new GsonBuilder().setPrettyPrinting().create();
@Test
public void testDeserializeGroupConceptResponse() throws IOException {
ClassLoader cl = NdfrtGroupConceptTest.class.getClassLoader();
File testJsonResponseFile = new File(cl.getResource("json/ndfrt-groupconcept-response.json").getFile());
FileReader jsonStreamReader = new FileReader(testJsonResponseFile);
GroupConceptResponse response = gson.fromJson(jsonStreamReader, GroupConceptResponse.class);
jsonStreamReader.close();
assertThat("Query is RxNormID", response.getResponseType().getInputPropertyName(), Matchers.equalTo(PropertyNames.RX_NORM_CUI));
assertThat("Query is RxNormID 161", response.getResponseType().getInputPropertyValue(), Matchers.equalToIgnoringCase("161"));
System.out.println(gson.toJson(response));
GroupConcept groupConcept = response.getGroupConcepts().get(0);
Concept firstConcept = groupConcept.getConcept().get(0);
Concept secondConcept = groupConcept.getConcept().get(1);
assertThat("First drug is ACETAMINOPHEN", firstConcept.getConceptName(), Matchers.equalToIgnoringCase("ACETAMINOPHEN"));
assertThat("First drug is N0000145898", firstConcept.getConceptNui(), Matchers.equalToIgnoringCase("N0000145898"));
assertThat("First drug kind is DRUG_KIND", firstConcept.getConceptKind(), Matchers.equalTo(KindNames.DRUG_KIND));
assertThat("Second drug is Acetaminophen", secondConcept.getConceptName(), Matchers.equalToIgnoringCase("Acetaminophen"));
assertThat("Second drug is N0000007359", secondConcept.getConceptNui(), Matchers.equalToIgnoringCase("N0000007359"));
assertThat("Second drug kind is INGREDIENT_KIND", secondConcept.getConceptKind(), Matchers.equalTo(KindNames.INGREDIENT_KIND));
}
}