package org.mafagafogigante.dungeon.schema.rules;

import org.mafagafogigante.dungeon.schema.JsonRule;

import com.eclipsesource.json.Json;
import com.eclipsesource.json.JsonValue;
import org.junit.Test;

public class PercentageJsonRuleTest {

  private static final JsonRule percentJsonRule = new PercentageJsonRule();

  @Test(expected = IllegalArgumentException.class)
  public void percentageJsonRuleShouldFailOnInvalidPercentageFormat() {
    JsonValue jsonValue = Json.value("A%");
    percentJsonRule.validate(jsonValue);
  }

  @Test(expected = IllegalArgumentException.class)
  public void percentageJsonRuleShouldFailOnValueBelowValidRange() {
    JsonValue jsonValue = Json.value("-1.0%");
    percentJsonRule.validate(jsonValue);
  }

  @Test(expected = IllegalArgumentException.class)
  public void percentageJsonRuleShouldFailOnValueAboveValidRange() {
    JsonValue jsonValue = Json.value("101.0%");
    percentJsonRule.validate(jsonValue);
  }

  @Test
  public void percentageJsonRuleShouldPassOnValidFormatAndRange() {
    JsonValue jsonValue = Json.value("2%");
    percentJsonRule.validate(jsonValue);
  }

}