public void TestUnitTokens()
		{
			var tokensP1 = new IUnitRequestToken[]
			{
				this.Controller[this.State.Players[0]].Request("Unit1"),
				this.Controller[this.State.Players[0]].Request("Unit1"),
				this.Controller[this.State.Players[0]].Request("Unit1")
			};

			var tokensP2 = new IUnitRequestToken[]
			{
				this.Controller[this.State.Players[1]].Request("Unit1"),
				this.Controller[this.State.Players[1]].Request("Unit1"),
				this.Controller[this.State.Players[1]].Request("Unit1")
			};

			AreNotCompleted(tokensP1);
			AreNotCompleted(tokensP2);

			//Żadna jednostka nie jest stworzona.
			this.Controller.Update(GameState.TestUnit.CreationTime / 2);
			AreNotCompleted(tokensP1);
			AreNotCompleted(tokensP2);
			Assert.AreEqual(0, this.State.Units.Count);
			Assert.AreEqual(0, this.State.Players[0].Units.Count);
			Assert.AreEqual(0, this.State.Players[1].Units.Count);

			//Statystyki
			var stats = this.Controller[this.State.Players[0]][0];
			Assert.AreEqual(tokensP1[0], stats.CurrentToken);
			Assert.AreEqual(3, stats.QueueLength);

			//Tu już po jednej jednostce powinno być stworzone.
			this.Controller.Update(GameState.TestUnit.CreationTime / 2);
			AreNotCompleted(tokensP1, 1);
			AreNotCompleted(tokensP2, 1);
			Assert.AreEqual(2, this.State.Units.Count);
			Assert.AreEqual(1, this.State.Players[0].Units.Count);
			Assert.AreEqual(1, this.State.Players[1].Units.Count);

			//Statystyki
			stats = this.Controller[this.State.Players[0]][0];
			Assert.AreEqual(tokensP1[1], stats.CurrentToken);
			Assert.AreEqual(2, stats.QueueLength);

			//Tu już powinny być wszystkie jednostki stworzone
			this.Controller.Update(GameState.TestUnit.CreationTime);
			this.Controller.Update(GameState.TestUnit.CreationTime);
			AreCompleted(tokensP1);
			AreCompleted(tokensP2);
			Assert.AreEqual(6, this.State.Units.Count);
			Assert.AreEqual(3, this.State.Players[0].Units.Count);
			Assert.AreEqual(3, this.State.Players[1].Units.Count);
		}
		private static void AreCompleted(IUnitRequestToken[] tokens, int start = 0, int end = -1)
		{
			if (end == -1)
				end = tokens.Length;

			for (int i = start; i < end; i++)
			{
				Assert.IsTrue(tokens[i].IsCompleted, "Token: {0}", i);
			}
		}
		public UnitQueueStats(IUnitRequestToken token, uint length)
		{
			this.CurrentToken = token;
			this.QueueLength = length;
		}