package com.intellectualcrafters.plot;
import static org.junit.Assert.assertEquals;
import com.google.common.base.Optional;
import com.intellectualcrafters.plot.database.AbstractDBTest;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.Flags;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.util.EventUtil;
import com.intellectualcrafters.plot.util.EventUtilTest;
import org.junit.Before;
import org.junit.Test;
import java.util.Collection;
import java.util.HashSet;
import java.util.UUID;
public class FlagTest {
private Object testBlock;
private Flag<? extends Collection<?>> use = Flags.USE;
@Before
public void setUp() throws Exception {
EventUtil.manager = new EventUtilTest();
DBFunc.dbManager = new AbstractDBTest();
}
@Test
public void flagTest() throws Exception {
Plot plot = new Plot(null, new PlotId(0, 0));
plot.owner = UUID.fromString("84499644-ad72-454b-a19d-f28c28df382b");
//plot.setFlag(use, use.parseValue("33,33:1,6:4")); //TODO fix this so FlagTest will run during compile
Optional<? extends Collection> flag = plot.getFlag(use);
if (flag.isPresent()) {
System.out.println(Flags.USE.valueToString(flag.get()));
testBlock = PlotBlock.get((short) 1, (byte) 0);
flag.get().add(testBlock);
}
if (flag.isPresent()) {
System.out.println(Flags.USE.valueToString(flag.get()));
}
Optional<HashSet<PlotBlock>> flag2 = plot.getFlag(Flags.USE);
if (flag2.isPresent()) {
// assertThat(flag2.get(), (Matcher<? super HashSet<PlotBlock>>) IsCollectionContaining.hasItem(testBlock));
}
if (flag.isPresent() && flag2.isPresent()) {
assertEquals(flag.get(), flag2.get());
}
}
}