package org.atlasapi.persistence.ids; import static org.junit.Assert.*; import java.math.BigInteger; import org.junit.Test; import com.metabroadcast.common.ids.SubstitutionTableNumberCodec; import com.metabroadcast.common.persistence.MongoTestHelper; import com.metabroadcast.common.persistence.mongo.DatabasedMongo; import com.mongodb.DBCollection; public class MongoSequentialIdGeneratorTest { private final DatabasedMongo mongo = MongoTestHelper.anEmptyTestDatabase(); @Test public void testGenerate() { MongoSequentialIdGenerator generator = new MongoSequentialIdGenerator(mongo, "one"); DBCollection collection = mongo.collection("id"); SubstitutionTableNumberCodec codec = new SubstitutionTableNumberCodec(); long expectedStart = new Double(Math.pow(codec.getAlphabet().size(), 3)).longValue(); assertEquals(expectedStart, collection.findOne("one").get("nextId")); String generated = generator.generate(); assertEquals(codec.encode(BigInteger.valueOf(expectedStart)), generated); generated = generator.generate(); assertEquals(codec.encode(BigInteger.valueOf(expectedStart+1)), generated); assertEquals(expectedStart+2, collection.findOne("one").get("nextId")); } }