Пример #1
0
        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);
        }
Пример #2
0
        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)));
        }
Пример #3
0
        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);
        }
Пример #4
0
 public Users(ITimeWarpStateCalculator timeWarpStateCalculator)
     : this(GetUsersFromRepository(timeWarpStateCalculator))
 {
 }
Пример #5
0
 public UserStateManager(ITimeWarpStateCalculator timeWarpStateCalculator,
                         ITimeWarpUserStateRepository userStateRepository)
 {
     _timeWarpStateCalculator = timeWarpStateCalculator;
     _userStateRepository     = userStateRepository;
 }
Пример #6
0
 public TimeWarpUser(Account account,
                     ITimeWarpStateCalculator timeWarpStateCalculator)
     : this(new TimeWarpUserState(account, TimeWarpState.None, default(DateTime), default(TimeSpan),
                                  default(double)), timeWarpStateCalculator)
 {
 }
Пример #7
0
 public TimeWarpUser(TimeWarpUserState state, ITimeWarpStateCalculator timeWarpStateCalculator)
 {
     Account = state.Account;
     _timeWarpStateCalculator = timeWarpStateCalculator;
     _timeWarpUserState       = state;
 }