@@ -106,6 +106,44 @@ def cdi_record
106106 assert_equal 'alma991000000001234567' , normalized [ :identifier ]
107107 end
108108
109+ test 'normalizes doi' do
110+ normalized = NormalizePrimoRecord . new ( full_record , 'test' ) . normalize
111+ assert_equal normalized [ :doi ] , '10.1038/s41567-023-02305-y'
112+ end
113+
114+ test 'handles missing doi' do
115+ normalized = NormalizePrimoRecord . new ( minimal_record , 'test' ) . normalize
116+ assert_nil normalized [ :doi ]
117+ end
118+
119+ test 'multiple dois normalize to the first one' do
120+ temp_record = full_record
121+ temp_record [ 'pnx' ] [ 'addata' ] [ 'doi' ] = %w[ three two one ]
122+
123+ normalized = NormalizePrimoRecord . new ( temp_record , 'test' ) . normalize
124+
125+ assert_equal normalized [ :doi ] , 'three'
126+ end
127+
128+ test 'normalizes pmid' do
129+ normalized = NormalizePrimoRecord . new ( full_record , 'test' ) . normalize
130+ assert_equal normalized [ :pmid ] , '22110403'
131+ end
132+
133+ test 'handles missing pmid' do
134+ normalized = NormalizePrimoRecord . new ( minimal_record , 'test' ) . normalize
135+ assert_nil normalized [ :pmid ]
136+ end
137+
138+ test 'multiple pmids normalize to the first one' do
139+ temp_record = full_record
140+ temp_record [ 'pnx' ] [ 'addata' ] [ 'pmid' ] = %w[ three two one ]
141+
142+ normalized = NormalizePrimoRecord . new ( temp_record , 'test' ) . normalize
143+
144+ assert_equal normalized [ :pmid ] , 'three'
145+ end
146+
109147 test 'normalizes summary' do
110148 normalized = NormalizePrimoRecord . new ( full_record , 'test' ) . normalize
111149 assert_equal 'A comprehensive study of testing methodologies' , normalized [ :summary ]
0 commit comments