44package com .imsweb .seerapi .client .ndc ;
55
66import java .io .IOException ;
7- import java .util .Arrays ;
8- import java .util .Collections ;
97import java .util .List ;
108
119import org .junit .BeforeClass ;
1412import retrofit2 .Response ;
1513
1614import com .imsweb .seerapi .client .SeerApi ;
15+ import com .imsweb .seerapi .client .ndc .NdcSeerInfo .Category ;
1716
18- import static org .junit .Assert .assertEquals ;
19- import static org .junit .Assert .assertNotNull ;
20- import static org .junit .Assert .assertNull ;
21- import static org .junit .Assert .assertTrue ;
17+ import static org .assertj .core .api .Assertions .assertThat ;
2218
2319public class NdcTest {
2420
@@ -33,36 +29,42 @@ public static void setup() {
3329 public void testNdcByCode () throws IOException {
3430 NdcProduct product = _NDC .getByCode ("0002-3227" ).execute ().body ();
3531
36- assertNotNull (product );
37- assertEquals ( "0002-3227" , product .getNdc ());
38- assertEquals ( "HUMAN PRESCRIPTION DRUG" , product . getTypeName () );
39- assertEquals ( "Strattera" , product .getProprietaryName ());
40- assertNull (product .getProprietaryNameSuffix ());
41- assertEquals ( Collections . singletonList ( "Atomoxetine hydrochloride" ), product . getNonProprietaryName () );
42- assertEquals ( "CAPSULE" , product .getDosageFormName ());
43- assertEquals ( Collections . singletonList ( "ORAL" ), product .getRouteName ());
44- assertEquals ( "20021126" , product .getStartMarketingDate ());
45- assertNull (product .getEndMarketingDate ());
46- assertEquals ( "NDA" , product .getMarketingCategoryName ());
47- assertEquals ( "NDA021411" , product .getApplicationNumber ());
48- assertEquals ( "Eli Lilly and Company" , product . getLabelerName () );
49- assertNull (product .getDeaSchedule ());
50- assertEquals ( 1 , product .getSubstances (). size () );
32+ assertThat (product ). isNotNull ( );
33+ assertThat ( product .getNdc ()). isEqualTo ( "0002-3227" );
34+ assertThat ( product . getTypeName ()). isEqualTo ( "HUMAN PRESCRIPTION DRUG" );
35+ assertThat ( product .getProprietaryName ()). isEqualTo ( "Strattera" );
36+ assertThat (product .getProprietaryNameSuffix ()). isNull ( );
37+ assertThat ( product . getNonProprietaryName ()). containsExactly ( "Atomoxetine hydrochloride" );
38+ assertThat ( product .getDosageFormName ()). isEqualTo ( "CAPSULE" );
39+ assertThat ( product .getRouteName ()). containsExactly ( "ORAL" );
40+ assertThat ( product .getStartMarketingDate ()). isEqualTo ( "20021126" );
41+ assertThat (product .getEndMarketingDate ()). isNull ( );
42+ assertThat ( product .getMarketingCategoryName ()). isEqualTo ( "NDA" );
43+ assertThat ( product .getApplicationNumber ()). isEqualTo ( "NDA021411" );
44+ assertThat ( product . getLabelerName ()). isEqualTo ( "Eli Lilly and Company" );
45+ assertThat (product .getDeaSchedule ()). isNull ( );
46+ assertThat ( product .getSubstances ()). hasSize ( 1 );
5147
5248 NdcSubstance substance = product .getSubstances ().get (0 );
53- assertEquals ( "ATOMOXETINE HYDROCHLORIDE" , substance .getName ());
54- assertEquals ( "10" , substance .getStrengthNumber ());
55- assertEquals ( "mg/1" , substance .getStrengthUnit ());
49+ assertThat ( substance .getName ()). isEqualTo ( "ATOMOXETINE HYDROCHLORIDE" );
50+ assertThat ( substance .getStrengthNumber ()). isEqualTo ( "10" );
51+ assertThat ( substance .getStrengthUnit ()). isEqualTo ( "mg/1" );
5652
57- assertEquals ( Arrays . asList ( "Norepinephrine Reuptake Inhibitor [EPC]" , "Norepinephrine Uptake Inhibitors [MoA]" ), product . getPharmClass () );
53+ assertThat ( product . getPharmClass ()). containsExactly ( "Norepinephrine Reuptake Inhibitor [EPC]" , "Norepinephrine Uptake Inhibitors [MoA]" );
5854
59- assertEquals ( 2 , product .getPackages (). size () );
60- assertEquals ( "30" , product .getPackages ().get (0 ).getCode ());
61- assertEquals ( "30 CAPSULE in 1 BOTTLE (0002-3227-30)" , product . getPackages (). get ( 0 ). getDescription (). trim () );
55+ assertThat ( product .getPackages ()). isNotEmpty ( );
56+ assertThat ( product .getPackages ().get (0 ).getCode ()). isEqualTo ( "30" );
57+ assertThat ( product . getPackages (). get ( 0 ). getDescription ()). isEqualToIgnoringWhitespace ( "30 CAPSULE in 1 BOTTLE (0002-3227-30)" );
6258
63- assertNotNull (product .getDateAdded ());
64- assertNotNull (product .getDateModified ());
65- assertNull (product .getDateRemoved ());
59+ assertThat (product .getDateAdded ()).isNotNull ();
60+ assertThat (product .getDateModified ()).isNotNull ();
61+ assertThat (product .getDateRemoved ()).isNull ();
62+
63+ // test one with "seer" added information (0002-4483)
64+ product = _NDC .getByCode ("0002-4483" ).execute ().body ();
65+ assertThat (product .getNdc ()).isEqualTo ("0002-4483" );
66+ assertThat (product .getProprietaryName ()).isEqualTo ("Verzenio" );
67+ assertThat (product .getSeerInfo ().getCategories ()).containsExactly (Category .CHEMOTHERAPY );
6668 }
6769
6870 @ Test
@@ -74,26 +76,43 @@ public void testNdcSearch() throws IOException {
7476
7577 // hold onto total number (including "removed")
7678 Integer totalIncludingRemoved = Integer .valueOf (response .headers ().get ("X-Total-Count" ));
77- assertTrue (totalIncludingRemoved > 100000 );
79+ assertThat (totalIncludingRemoved ). isGreaterThan ( 100000 );
7880
7981 List <NdcProduct > products = response .body ();
80- assertEquals ( 25 , products . size () );
82+ assertThat ( products ). hasSize ( 25 );
8183
8284 search .setQuery ("daklinza" );
8385 products = _NDC .search (search .paramMap ()).execute ().body ();
84- assertTrue (products .size () > 1 );
86+ assertThat (products .size ()). isGreaterThan ( 1 );
8587
8688 search .setRemovedSince ("2016-07-21" );
8789 products = _NDC .search (search .paramMap ()).execute ().body ();
88- assertEquals ( 0 , products . size () );
90+ assertThat ( products ). isEmpty ( );
8991
9092 // test removed
9193 search = new NdcSearch ();
9294 search .setIncludeRemoved (false );
9395 response = _NDC .search (search .paramMap ()).execute ();
9496 Integer totalExcludingRemoved = Integer .valueOf (response .headers ().get ("X-Total-Count" ));
9597
96- assertTrue (totalIncludingRemoved > totalExcludingRemoved );
98+ assertThat (totalIncludingRemoved ).isGreaterThan (totalExcludingRemoved );
99+ }
100+
101+ @ Test
102+ public void testNdcSearchByCategory () throws IOException {
103+ NdcSearch search = new NdcSearch ();
104+ search .setCategory (Category .CHEMOTHERAPY );
105+
106+ Response <List <NdcProduct >> response = _NDC .search (search .paramMap ()).execute ();
107+
108+ assertThat (Integer .valueOf (response .headers ().get ("X-Total-Count" ))).isGreaterThan (0 );
109+
110+ List <NdcProduct > products = response .body ();
111+ assertThat (products ).isNotEmpty ();
112+
113+ NdcProduct product = products .get (0 );
114+ assertThat (product .getSeerInfo ()).as ("must have 'seerinfo'" ).isNotNull ();
115+ assertThat (product .getSeerInfo ().getCategories ()).contains (Category .CHEMOTHERAPY );
97116 }
98117
99118}
0 commit comments