public void CalculateCurrentEnergyVerification3() { DateTime lastTimeAtMaxEnergy = DateTime.Now.ToUniversalTime() - new TimeSpan(1, 0, 0); // 1 hour ago float currentEnergy = Energy.CalculateCurrentEnergy(100.0f, 83.0f, lastTimeAtMaxEnergy); Assert.AreEqual(100.0f, currentEnergy); }
public void CalculateCurrentEnergyVerification1() { DateTime lastTimeAtMaxEnergy = DateTime.Now.ToUniversalTime() - new TimeSpan(1, 0, 0); // 1 hour ago float currentEnergy = Energy.CalculateCurrentEnergy(130.0f, 60.0f, lastTimeAtMaxEnergy); Assert.IsWithin(80.0f, currentEnergy, 0.01f); }
public void CalculateCurrentEnergyVerification2() { DateTime lastTimeAtMaxEnergy = DateTime.Now.ToUniversalTime() - new TimeSpan(56, 45, 23); float currentEnergyAtCap = Energy.CalculateCurrentEnergy(75.0f, 60.0f, lastTimeAtMaxEnergy); Assert.AreEqual(75.0f, currentEnergyAtCap); }
public void UseEnergy(Message message, Guid sessionId) { if (!FashionMinigameServer.VerifyMessageData(message, 2, mLogger)) { // Drop the message return; } ServerAccount serverAccount = mGuidToServerAccount(sessionId); float energyToUse = CheckType.TryAssignType <float>(message.Data[1]); GetCurrentEnergyData ( serverAccount, delegate(float lastEnergy, float maxEnergy, DateTime lastUpdate) { List <object> responseData = new List <object>(); responseData.Add(message.Data[0]); // callback Id float energy = Energy.CalculateCurrentEnergy(maxEnergy, lastEnergy, lastUpdate); if (energy >= energyToUse) { float newEnergy = energy - energyToUse; responseData.Add(Energy.UseRequestResult.Success.ToString()); responseData.Add(newEnergy.ToString()); responseData.Add(maxEnergy.ToString()); if (energy == maxEnergy) { SetEnergyRegenDate(serverAccount, DateTime.UtcNow); responseData.Add(DateTime.UtcNow.ToString()); } else { responseData.Add(lastUpdate.ToString()); } SetEnergy(serverAccount, newEnergy); } else { responseData.Add(Energy.UseRequestResult.NotEnoughEnergy.ToString()); } Message responseMessage = new Message(MessageType.FashionMinigame, responseData); mSendMessageToClientCallback(responseMessage, sessionId); } ); }
public void UsingEnergyStartingAtMaxUpdatesRechargeDate() { // Fresh user (from yesterday) SetupEnergyData(100, 100, DateTime.UtcNow - new TimeSpan(24, 0, 0)); Message useEnergyMessage = new Message ( MessageType.FashionMinigame, new List <object>(new object[] { "0", // callbackId "50" // energy to use }) ); bool responseCalled = false; mClientMessageFunc = delegate(Message clientResponse) { responseCalled = true; Energy.UseRequestResult useEnergyResult = (Energy.UseRequestResult)Enum.Parse(typeof(Energy.UseRequestResult), (string)clientResponse.Data[0]); Assert.AreEqual(Energy.UseRequestResult.Success, useEnergyResult); bool getEnergyCalled = false; mEnergyManager.GetCurrentEnergyData ( MockServerAccount, delegate(float lastEnergy, float maxEnergy, DateTime rechargeDate) { getEnergyCalled = true; float currentEnergy = Energy.CalculateCurrentEnergy(maxEnergy, lastEnergy, rechargeDate); Assert.IsWithin(50.0f, currentEnergy, 0.01f, "Energy should be removed from database when UseEnergy is called"); Assert.IsTrue ( (DateTime.UtcNow - rechargeDate).TotalHours < 1.0, "The recharge date was not updated when UseEnergy was called with full energy (Expected: " + DateTime.UtcNow + ", Actual: " + rechargeDate + ")" ); } ); Assert.IsTrue(getEnergyCalled); }; mEnergyManager.UseEnergy(useEnergyMessage, Guid.Empty); // make sure all the necessary parts are mocked out and that the message wasn't just dropped Assert.IsTrue(responseCalled); }
private void UpdateEnergyMeter() { int currentEnergy = (int)Energy.CalculateCurrentEnergy(mMaxEnergy, mLastKnownEnergy, (DateTime)mLastEnergyTime); mEnergyLabel.Text = currentEnergy + "/" + mMaxEnergy.ToString("f0"); float progress = (currentEnergy / mMaxEnergy); mEnergyMeter.SetProgress(progress); if (progress < 1.0) { TimeSpan ts = Energy.GetTimeToNextRecharge(mMaxEnergy, mLastKnownEnergy, (DateTime)mLastEnergyTime); mEnergyTimerLabel.Text = String.Format("More in {0}:{1:00}", ts.Minutes, ts.Seconds); } else { mEnergyTimerLabel.Text = "Energy Full"; } }
public void GetCurrentEnergyVerification() { // User went from 100 to 0 an hour ago SetupEnergyData(0, 100, DateTime.UtcNow - new TimeSpan(1, 0, 0)); bool callbackCalledImmediately = false; mEnergyManager.GetCurrentEnergyData ( MockServerAccount, delegate(float lastEnergy, float maxEnergy, DateTime rechargeDate) { callbackCalledImmediately = true; float currentEnergy = Energy.CalculateCurrentEnergy(maxEnergy, lastEnergy, rechargeDate); Assert.IsWithin(60.0f * (float)Energy.RECHARGE_RATE, currentEnergy, 0.01f); } ); Assert.IsTrue(callbackCalledImmediately); }
public void RefillEnergyVerification() { SetupEnergyData(40, 100, DateTime.UtcNow - new TimeSpan(1, 0, 0)); bool getCurrentEnergyDataReturned = false; mEnergyManager.RefillEnergy(MockServerAccount); mEnergyManager.GetCurrentEnergyData ( MockServerAccount, delegate(float lastEnergy, float maxEnergy, DateTime rechargeDate) { getCurrentEnergyDataReturned = true; float currentEnergy = Energy.CalculateCurrentEnergy(maxEnergy, lastEnergy, rechargeDate); Assert.AreEqual(maxEnergy, currentEnergy); } ); Assert.IsTrue(getCurrentEnergyDataReturned); }