Exemple #1
0
 public StreamState(StreamStatus streamStatus, DateTime latestStreamOnTime, DateTime latestStreamOffTime, TwitchStreamStatus.RootObject rawStatus)
 {
     StreamStatus        = streamStatus;
     LatestStreamOnTime  = latestStreamOnTime;
     LatestStreamOffTime = latestStreamOffTime;
     Viewers             = rawStatus.stream?.viewers ?? 0;
     Title      = rawStatus.stream?.channel.status;
     Game       = rawStatus.stream?.game;
     Delay      = rawStatus.stream?.delay ?? 0;
     AverageFps = rawStatus.stream?.average_fps ?? 0;
     CreatedAt  = rawStatus.stream?.Parsed_created_at ?? DateTime.MaxValue;
 }
        private Container _getContainer(DateTime now, DateTime onTime, DateTime offTime, TwitchStreamStatus.RootObject current, StreamStatus previous)
        {
            var timeService = Substitute.For <ITimeService>();

            timeService.UtcNow.Returns(now);
            var urlJsonParser = Substitute.For <IGenericClassFactory <string, string, string> >();

            urlJsonParser.Create <TwitchStreamStatus.RootObject>(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(current);
            var container = new TestContainerManager(c => {
                var timeServiceRegistration = Lifestyle.Singleton.CreateRegistration(() => timeService, c);
                c.RegisterConditional(typeof(ITimeService), timeServiceRegistration, pc => !pc.Handled);
                var urlJsonParserRegistration = Lifestyle.Singleton.CreateRegistration(() => urlJsonParser, c);
                c.RegisterConditional(typeof(IGenericClassFactory <string, string, string>), urlJsonParserRegistration, _ => true);
            }, s => s.OnOffTimeTolerance = TimeSpan.FromMinutes(2))
                            .InitializeAndIsolateRepository();
            var unitOfWork = container.GetInstance <IQueryCommandService <IUnitOfWork> >();

            unitOfWork.Command(u => {
                u.StateIntegers.StreamStatus        = previous;
                u.StateIntegers.LatestStreamOnTime  = onTime;
                u.StateIntegers.LatestStreamOffTime = offTime;
            });
            return(container);
        }