spec/isrc_spec.rb in isrc-1.0.1 vs spec/isrc_spec.rb in isrc-1.0.2

- old
+ new

@@ -16,26 +16,68 @@ end context "should handle songs with multiple results" do it "when the results have the same title and time code" do isrc.retrieve artist:'Parade', title:'Louder' - isrc.match(time:'2:53')[:isrc].should == 'GBAHS1000333' + isrc.match(time:'2:53')[:isrc].should == 'GBAHS1000333' end - it "when there are multiple results, but all with different names" do + it "handles different names" do isrc.retrieve artist:'Soul II Soul', title: 'Back To Life (However Do You Want Me) (Club Mix)' isrc.match(time:'7:39')[:isrc].should == 'GBAAA8900153' # the better match seems to be: GB1209500610 # however, the length delta is huge end + + it "handles edge cases that don't make sense" do + isrc.retrieve artist:'Toni Braxton', title:'Youre Making me High' + isrc.match(time:'4:12')[:isrc].should == 'USLF29600183' + end + + it "handles the case where the primary match is not supplied" do + + end end it "should handle songs with no results" do isrc.retrieve artist:'The Rurals', title: 'Take Your Time' isrc.match(time:'7:27')[:isrc].should == 'No Match' isrc = ISRC::PPLUK.new isrc.retrieve artist:'Slut Puppies', title:'Funky Together' isrc.match(time:'6:36')[:isrc].should == 'No Match' + end + + context "song title processing" do + it "should handle bracket mixes" do + pieces = isrc.send(:extract_song_peices, "Surrender [Original Mix]") + pieces.size.should == 2 + pieces.last.should == "[Original Mix]" + end + + context 'of parenthesis' do + it "should count parenthesis as a single song peice" do + pieces = isrc.send(:extract_song_peices, "Want Me (Like Water) (New Vocal Mix No 1)") + pieces.size.should == 4 + pieces.last.should == '(New Vocal Mix No 1)' + end + + it "should handle a single word song with parenthesis" do + isrc.retrieve artist:'Niko', title: 'Womb (Flight Facilities feat. Giselle)' + isrc.match(time:'3:44')[:isrc].should == 'GBKNX0500003' + + isrc = ISRC::PPLUK.new + isrc.retrieve artist:'Frank Sinatra', title: 'Chicago (Digitally Remastered)' + isrc.match(time:'2:14')[:isrc].should == 'USCA20300966' + # or USCA29800388; they are basically the same + end + end + + it "should handle a standard multi-word title" do + pieces = isrc.send(:extract_song_peices, "Take Your Time") + pieces.size.should == 3 + pieces.last.should == "Time" + end + end end \ No newline at end of file