/*******************************************************************************
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2013 The Catrobat Team
* (<http://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* An additional term exception under section 7 of the GNU Affero
* General Public License, version 3, is available at
* http://www.catroid.org/catroid/licenseadditionalterm
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/
package org.catrobat.musicdroid.test.note;
import android.test.AndroidTestCase;
import org.catrobat.musicdroid.note.Instrument;
import org.catrobat.musicdroid.note.NoteEvent;
import org.catrobat.musicdroid.note.NoteName;
import org.catrobat.musicdroid.note.Track;
import org.catrobat.musicdroid.test.note.testutil.NoteEventTestDataFactory;
import org.catrobat.musicdroid.test.note.testutil.TrackTestDataFactory;
public class TrackTest extends AndroidTestCase {
public void testGetInstrument() {
Track track = TrackTestDataFactory.createTrack();
assertEquals(Track.DEFAULT_INSTRUMENT, track.getInstrument());
}
public void testAddNoteEvent1() {
Track track = TrackTestDataFactory.createTrack();
track.addNoteEvent(0, NoteEventTestDataFactory.createNoteEvent());
assertEquals(1, track.size());
}
public void testAddNoteEvent2() {
Track track = TrackTestDataFactory.createTrack();
track.addNoteEvent(0, NoteEventTestDataFactory.createNoteEvent());
track.addNoteEvent(0, NoteEventTestDataFactory.createNoteEvent());
assertEquals(2, track.size());
}
public void testGetNoteEventsForTick() {
Track track = TrackTestDataFactory.createTrack();
long tick = 0;
NoteEvent noteEvent = NoteEventTestDataFactory.createNoteEvent();
track.addNoteEvent(tick, noteEvent);
assertEquals(noteEvent, track.getNoteEventsForTick(tick).get(0));
}
public void testEquals1() {
long tick = 0;
Track track1 = TrackTestDataFactory.createTrack();
track1.addNoteEvent(tick, NoteEventTestDataFactory.createNoteEvent());
Track track2 = TrackTestDataFactory.createTrack();
track2.addNoteEvent(tick, NoteEventTestDataFactory.createNoteEvent());
assertTrue(track1.equals(track2));
}
public void testEquals2() {
long tick = 0;
Track track1 = TrackTestDataFactory.createTrack();
track1.addNoteEvent(tick, NoteEventTestDataFactory.createNoteEvent(NoteName.C1));
Track track2 = TrackTestDataFactory.createTrack();
track2.addNoteEvent(tick, NoteEventTestDataFactory.createNoteEvent(NoteName.C2));
assertFalse(track1.equals(track2));
}
public void testEquals3() {
Track track1 = TrackTestDataFactory.createTrack();
track1.addNoteEvent(0, NoteEventTestDataFactory.createNoteEvent());
Track track2 = TrackTestDataFactory.createTrack();
assertFalse(track1.equals(track2));
}
public void testEquals4() {
Track track1 = TrackTestDataFactory.createTrack(Instrument.ACCORDION);
Track track2 = TrackTestDataFactory.createTrack();
assertFalse(track1.equals(track2));
}
public void testEquals5() {
Track track = TrackTestDataFactory.createTrack();
assertFalse(track.equals(null));
}
public void testEquals6() {
Track track = TrackTestDataFactory.createTrack();
assertFalse(track.equals(""));
}
public void testToString() {
Track track = TrackTestDataFactory.createTrack();
String expectedString = "[Track] instrument=" + Track.DEFAULT_INSTRUMENT + " key=" + track.getKey() + " size="
+ track.size();
assertEquals(expectedString, track.toString());
}
}