/*
* Jajuk
* Copyright (C) The Jajuk Team
* http://jajuk.info
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
package org.jajuk.services.dj;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.jajuk.JajukTestCase;
import org.jajuk.TestHelpers;
import org.jajuk.base.Genre;
import org.jajuk.base.GenreManager;
/**
* .
*/
public class TestAmbience extends JajukTestCase {
/**
* Test method for {@link org.jajuk.services.dj.Ambience#hashCode()}.
*/
public final void testHashCode() {
Ambience amb = new Ambience("1", "name");
Ambience equal = new Ambience("1", "name");
TestHelpers.HashCodeTest(amb, equal);
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#Ambience(java.lang.String, java.lang.String, java.util.Set)}
* .
*/
public final void testAmbienceStringStringSetOfGenre() {
Set<Genre> genres = new HashSet<Genre>();
genres.add(TestHelpers.getGenre("mygenre"));
new Ambience("1", "name", genres);
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#Ambience(java.lang.String, java.lang.String, java.lang.String[])}
* .
*/
public final void testAmbienceStringStringStringArray() {
GenreManager.getInstance().registerGenre("anothergenre");
GenreManager.getInstance().registerGenre("yetanothergenre");
// try with one unknown genre here...
new Ambience("1", "name", new String[] { "anothergenre", "yetanothergenre", "unknowngenre" });
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#Ambience(java.lang.String, java.lang.String)}
* .
*/
public final void testAmbienceStringString() {
new Ambience("1", "name");
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#Ambience()}.
*/
public final void testAmbience() {
new Ambience();
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#addGenre(org.jajuk.base.Genre)}.
*/
public final void testAddGenre() {
Ambience amb = new Ambience("1", "name");
amb.addGenre(TestHelpers.getGenre("anothergenre"));
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#removeGenre(org.jajuk.base.Genre)}.
*/
public final void testRemoveGenre() {
Ambience amb = new Ambience("1", "name");
Genre genre = TestHelpers.getGenre("anothergenre");
assertEquals(0, amb.getGenres().size());
amb.addGenre(genre);
assertEquals(1, amb.getGenres().size());
amb.removeGenre(genre);
assertEquals(0, amb.getGenres().size());
// try it again
amb.removeGenre(genre);
assertEquals(0, amb.getGenres().size());
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#getName()}.
*/
public final void testGetName() {
Ambience amb = new Ambience("7", "name123");
assertEquals("name123", amb.getName());
amb.setName("123n");
assertEquals("123n", amb.getName());
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#getID()}.
*/
public final void testGetID() {
Ambience amb = new Ambience("8", "name1234");
assertEquals("8", amb.getID());
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#setName(java.lang.String)}.
*/
public final void testSetName() {
// tested above
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#getGenres()}.
*/
public final void testGetGenres() {
// tested above
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#setGenres(java.util.Set)}.
*/
public final void testSetGenres() {
Ambience amb = new Ambience("1", "name");
assertEquals(0, amb.getGenres().size());
Set<Genre> genres = new HashSet<Genre>();
genres.add(TestHelpers.getGenre("mygenre"));
genres.add(TestHelpers.getGenre("mygenre2"));
genres.add(TestHelpers.getGenre("mygenre3"));
amb.setGenres(genres);
assertEquals(3, amb.getGenres().size());
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#getGenresDesc()}.
*/
public final void testGetGenresDesc() {
Ambience amb = new Ambience("1", "name");
// first an empty string results without any genre set
assertEquals("", amb.getGenresDesc());
// then add some genres
amb.addGenre(TestHelpers.getGenre("mygenre"));
amb.addGenre(TestHelpers.getGenre("mygenre2"));
amb.addGenre(TestHelpers.getGenre("mygenre3"));
assertTrue(StringUtils.isNotBlank(amb.getGenresDesc()));
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#toString()}.
*/
public final void testToString() {
Ambience amb = new Ambience("1", "name");
TestHelpers.ToStringTest(amb);
// also when some items are null
amb = new Ambience(null, "name");
TestHelpers.ToStringTest(amb);
amb = new Ambience("1", null);
TestHelpers.ToStringTest(amb);
amb = new Ambience(null, null);
TestHelpers.ToStringTest(amb);
// also with genres
amb = new Ambience("9", "name0987");
amb.addGenre(TestHelpers.getGenre("mygenre"));
amb.addGenre(TestHelpers.getGenre("mygenre2"));
TestHelpers.ToStringTest(amb);
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#equals(java.lang.Object)}.
*/
public final void testEqualsObject() {
Ambience amb = new Ambience("1", "name");
Ambience equal = new Ambience("1", "name");
// equals compares on name
Ambience notequal1 = new Ambience("1", "name1");
// and also compares on genres
Ambience notequal2 = new Ambience("1", "name");
notequal2.addGenre(TestHelpers.getGenre("mygenre2"));
TestHelpers.EqualsTest(amb, equal, notequal1);
TestHelpers.EqualsTest(amb, equal, notequal2);
}
/**
* Test equals object2.
*
*/
public final void testEqualsObject2() {
Ambience amb = new Ambience("1", "name");
amb.addGenre(TestHelpers.getGenre("mygenre4"));
Ambience equal = new Ambience("1", "name");
equal.addGenre(TestHelpers.getGenre("mygenre4"));
// equals compares on name
Ambience notequal1 = new Ambience("1", "name1");
// and also compares on genres
Ambience notequal2 = new Ambience("1", "name");
notequal2.addGenre(TestHelpers.getGenre("mygenre2"));
TestHelpers.EqualsTest(amb, equal, notequal1);
TestHelpers.EqualsTest(amb, equal, notequal2);
}
/**
* Test method for.
*
* {@link org.jajuk.services.dj.Ambience#compareTo(org.jajuk.services.dj.Ambience)}
* .
*/
public final void testCompareTo() {
Ambience amb = new Ambience("1", "name");
Ambience equal = new Ambience("1", "name");
Ambience notequal = new Ambience("1", "name1");
// only compares on name
TestHelpers.CompareToTest(amb, equal, notequal);
}
/**
* Test method for {@link org.jajuk.services.dj.Ambience#toXML()}.
*/
public final void testToXML() {
Ambience amb = new Ambience("1", "name");
// just returns a comma-separated list, not a full XML here...
// try without any genres, returns an empty string
assertEquals("", amb.toXML());
// then add some
amb.addGenre(TestHelpers.getGenre("mygenre4123"));
assertTrue(StringUtils.isNotBlank(amb.toXML()));
// and then some more
amb.addGenre(TestHelpers.getGenre("mygenre4234"));
amb.addGenre(TestHelpers.getGenre("mygenre834874"));
}
}