public void Get() { // Arrange long accountId = 1; var fakeNowProvider = new FakeNowProvider(); fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0); ITimeWarpStateCalculator calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator(); var account = new Account(accountId, "ashley", "*****@*****.**", "beans"); var timeWarpUser = new TimeWarpUser(account, calc); var usersCache = new UsersCache(new[] { timeWarpUser }); var controller = new UserStateController(usersCache, fakeNowProvider, new FakeTimeWarpStatePersistence()); //act fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0, 5); var result = controller.Get(accountId); // Assert Assert.IsNotNull(result); Assert.AreEqual(accountId, result.AccountId); Assert.AreEqual(Public.Models.v001.TimeWarpState.None, result.State); }
private static IEnumerable <TimeWarpUser> GetUsersFromRepository(ITimeWarpStateCalculator timeWarpStateCalculator) { IList <TimeWarpUserState> userStates; //todo: optimize this crap. using (var session = new NHibernateSessionPerRequest <TimeWarpUserStateClassMap>()) { var accountRespository = new TimeWarpAccountRepository(session.GetCurrentSession()); var accounts = accountRespository.GetAll(); var userStateRepository = new TimeWarpUserStateRepository(session.GetCurrentSession()); userStates = new List <TimeWarpUserState>(); foreach (var account in accounts) { var latestState = userStateRepository.GetLatestStateByAccountId(account.Id); if (latestState != null) { NHibernateUtil.Initialize(latestState.Account); userStates.Add(userStateRepository.GetLatestStateByAccountId(account.Id)); } } } return(userStates.Select(x => new TimeWarpUser(x, timeWarpStateCalculator))); }
public void Post() { // Arrange long accountId = 1; var fakeNowProvider = new FakeNowProvider(); fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0); ITimeWarpStateCalculator calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator(); var account = new Account(accountId, "ashley", "*****@*****.**", "beans"); var timeWarpUser = new TimeWarpUser(account, calc); var usersCache = new UsersCache(new[] { timeWarpUser }); var persistence = new FakeTimeWarpStatePersistence(); var controller = new UserStateController(usersCache, fakeNowProvider, persistence); //act controller.Post(accountId, TimeWarpCommand.Rest); fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0, 5); var result = controller.Get(accountId); // Assert Assert.IsNotNull(result); Assert.AreEqual(accountId, result.AccountId); Assert.AreEqual(Public.Models.v001.TimeWarpState.Resting, result.State); Assert.AreEqual(TimeSpan.FromMilliseconds(095), result.TimeLeft); Assert.AreEqual(0.050000000000000044d, result.Progress); Assert.AreEqual(new DateTime(2000, 12, 12, 12, 12, 0, 0), result.PeriodStartTime); }
public Users(ITimeWarpStateCalculator timeWarpStateCalculator) : this(GetUsersFromRepository(timeWarpStateCalculator)) { }
public UserStateManager(ITimeWarpStateCalculator timeWarpStateCalculator, ITimeWarpUserStateRepository userStateRepository) { _timeWarpStateCalculator = timeWarpStateCalculator; _userStateRepository = userStateRepository; }
public TimeWarpUser(Account account, ITimeWarpStateCalculator timeWarpStateCalculator) : this(new TimeWarpUserState(account, TimeWarpState.None, default(DateTime), default(TimeSpan), default(double)), timeWarpStateCalculator) { }
public TimeWarpUser(TimeWarpUserState state, ITimeWarpStateCalculator timeWarpStateCalculator) { Account = state.Account; _timeWarpStateCalculator = timeWarpStateCalculator; _timeWarpUserState = state; }