package org.mafagafogigante.dungeon.world;
import org.junit.Assert;
import org.junit.Test;
public class WeatherConditionTest {
@Test
public void testGetLighterReturnsTheNextLighterWeather() {
WeatherCondition condition = WeatherCondition.STORM;
Assert.assertEquals(WeatherCondition.RAIN, condition.getLighter());
Assert.assertEquals(WeatherCondition.OVERCAST, condition.getLighter().getLighter());
Assert.assertEquals(WeatherCondition.CLOUDY, condition.getLighter().getLighter().getLighter());
Assert.assertEquals(WeatherCondition.CLEAR, condition.getLighter().getLighter().getLighter().getLighter());
}
@Test
public void testGetLighterReturnsTheLighestWeatherWhenCalledOnTheLightestWeather() {
Assert.assertEquals(WeatherCondition.CLEAR, WeatherCondition.CLEAR.getLighter());
}
@Test
public void testGetHeavierReturnsTheNextHeavierWeather() {
WeatherCondition condition = WeatherCondition.CLEAR;
Assert.assertEquals(WeatherCondition.CLOUDY, condition.getHeavier());
Assert.assertEquals(WeatherCondition.OVERCAST, condition.getHeavier().getHeavier());
Assert.assertEquals(WeatherCondition.RAIN, condition.getHeavier().getHeavier().getHeavier());
Assert.assertEquals(WeatherCondition.STORM, condition.getHeavier().getHeavier().getHeavier().getHeavier());
}
@Test
public void testGetHeavierReturnsTheHeaviestWeatherWhenCalledOnTheHeaviestWeather() {
Assert.assertEquals(WeatherCondition.STORM, WeatherCondition.STORM.getHeavier());
}
@Test
public void testIsHeavierThanWorksAsIntended() {
WeatherCondition condition = WeatherCondition.CLEAR;
Assert.assertFalse(condition.isHeavierThan(condition));
Assert.assertTrue(condition.getHeavier().isHeavierThan(condition));
Assert.assertTrue(condition.getHeavier().getHeavier().isHeavierThan(condition));
Assert.assertTrue(condition.getHeavier().getHeavier().getHeavier().isHeavierThan(condition));
Assert.assertTrue(condition.getHeavier().getHeavier().getHeavier().getHeavier().isHeavierThan(condition));
}
@Test
public void testIsLighterThanWorksAsIntended() {
WeatherCondition condition = WeatherCondition.STORM;
Assert.assertFalse(condition.isLighterThan(condition));
Assert.assertTrue(condition.getLighter().isLighterThan(condition));
Assert.assertTrue(condition.getLighter().isLighterThan(condition));
Assert.assertTrue(condition.getLighter().getLighter().isLighterThan(condition));
Assert.assertTrue(condition.getLighter().getLighter().getLighter().isLighterThan(condition));
Assert.assertTrue(condition.getLighter().getLighter().getLighter().getLighter().isLighterThan(condition));
}
}