示例#1
0
 public void TestValidateValidPegRequest(PockyBotSettings settings, int commentsRequired, List <string> keywords, List <string> penaltyKeywords, List <string> linkedKeywords, int requireValues, Message message)
 {
     this.Given(x => GivenPockyBotSettings(settings))
     .And(x => GivenAConfig(commentsRequired, keywords, penaltyKeywords, linkedKeywords, requireValues))
     .And(x => GivenAMessage(message))
     .When(x => WhenValidatingAPegRequest())
     .Then(x => ThenTheMessageShouldBeValid())
     .BDDfy();
 }
示例#2
0
        public TriggerResponseTesterTests()
        {
            _settings            = new PockyBotSettings();
            _pockyUserRepository = Substitute.For <IPockyUserRepository>();
            var options = Substitute.For <IOptions <PockyBotSettings> >();

            options.Value.Returns(_settings);
            _subject = new TriggerResponseTester(options, _pockyUserRepository);
        }
示例#3
0
        public PegRequestValidatorTests()
        {
            _settings         = new PockyBotSettings();
            _configRepository = Substitute.For <IConfigRepository>();
            var options = Substitute.For <IOptions <PockyBotSettings> >();

            options.Value.Returns(_settings);
            _subject = new PegRequestValidator(options, _configRepository);
        }
示例#4
0
 internal void TestShouldTriggerInRoom(PockyBotSettings settings, PockyUser user, Message message,
                                       ITrigger trigger, bool shouldTrigger)
 {
     this.Given(x => GivenPockyBotSettings(settings))
     .And(x => GivenAPockyUser(user))
     .And(x => GivenAMessage(message))
     .And(x => GivenATrigger(trigger))
     .When(x => WhenCallingShouldTriggerInRoom())
     .Then(x => ThenItShouldReturn(shouldTrigger))
     .BDDfy();
 }
示例#5
0
        public static IPockyBot CreatePockyBot(PockyBotSettings settings, IChatHelper chatHelper, IResultsUploader resultsUploader, ILoggerFactory loggerFactory)
        {
            var wrappedSettings        = new OptionsWrapper <PockyBotSettings>(settings);
            var dbContext              = DatabaseContextBuilder.BuildDatabaseContext(settings.DatabaseConnectionString);
            var pockyUserRepository    = new PockyUserRepository(dbContext);
            var configRepository       = new ConfigRepository(dbContext);
            var pegRepository          = new PegRepository(dbContext);
            var locationRepository     = new LocationRepository(dbContext);
            var userLocationRepository = new UserLocationRepository(dbContext);

            var triggerResponseTester = new TriggerResponseTester(wrappedSettings, pockyUserRepository);
            var pegRequestValidator   = new PegRequestValidator(wrappedSettings, configRepository);
            var pegHelper             = new PegHelper(configRepository);
            var pegGiver = new PegGiver(pegRepository, chatHelper);
            var directResultsMessageSender = new DirectResultsMessageSender(chatHelper.Messages);
            var pegResultsHelper           = new PegResultsHelper(configRepository, pegHelper);
            var userLocationGetter         = new UserLocationGetter(pockyUserRepository);
            var userLocationSetter         =
                new UserLocationSetter(pockyUserRepository, locationRepository, userLocationRepository, chatHelper);
            var userLocationDeleter  = new UserLocationDeleter(userLocationRepository);
            var resultsFileGenerator = new ResultsFileGenerator(pegResultsHelper, loggerFactory.CreateLogger <ResultsFileGenerator>(), resultsUploader);
            var usernameUpdater      = new UsernameUpdater(chatHelper.People, pockyUserRepository);

            var triggers = new List <ITrigger>
            {
                new Ping(),
                new Help(pockyUserRepository, wrappedSettings, configRepository),
                new Welcome(wrappedSettings, configRepository),
                new Peg(pegRequestValidator, pockyUserRepository, pegHelper, configRepository, chatHelper, pegGiver, loggerFactory.CreateLogger <Peg>()),
                new Status(pockyUserRepository, configRepository, pegHelper, loggerFactory.CreateLogger <Status>()),
                new Results(pockyUserRepository, pegResultsHelper, resultsFileGenerator, loggerFactory.CreateLogger <Results>()),
                new Finish(pockyUserRepository, pegResultsHelper, directResultsMessageSender, resultsFileGenerator, loggerFactory.CreateLogger <Finish>(), usernameUpdater),
                new Reset(pegRepository, loggerFactory.CreateLogger <Reset>()),
                new Keywords(configRepository),
                new Rotation(configRepository),
                new LocationConfig(locationRepository, pockyUserRepository),
                new UserLocation(pockyUserRepository, userLocationGetter, userLocationSetter, userLocationDeleter),
                new NumberConfig(configRepository),
                new StringConfig(configRepository),
                new RoleConfig(pockyUserRepository, chatHelper),
                new RemoveUser(pockyUserRepository, loggerFactory.CreateLogger <RemoveUser>()),
                new LocationWeight(configRepository, locationRepository),
                new Default(wrappedSettings)
            };

            return(new PockyBot(triggers, triggerResponseTester, chatHelper, loggerFactory.CreateLogger <PockyBot>()));
        }
 public PegRequestValidator(IOptions <PockyBotSettings> settings, IConfigRepository configRepository)
 {
     _settings         = settings.Value;
     _configRepository = configRepository;
 }
示例#7
0
 public Default(IOptions <PockyBotSettings> settings)
 {
     _settings = settings.Value;
 }
示例#8
0
 private void GivenPockyBotSettings(PockyBotSettings settings)
 {
     _settings.BotId   = settings.BotId;
     _settings.BotName = settings.BotName;
     _settings.DatabaseConnectionString = settings.DatabaseConnectionString;
 }
示例#9
0
 public Help(IPockyUserRepository pockyUserRepository, IOptions <PockyBotSettings> pockySettings, IConfigRepository configRepository)
 {
     _pockyUserRepository = pockyUserRepository;
     _configRepository    = configRepository;
     _pockyBotSettings    = pockySettings.Value;
 }
示例#10
0
        public static IServiceCollection ConfigurePockyBot(this IServiceCollection services, PockyBotSettings settings)
        {
            var options = new OptionsWrapper <PockyBotSettings>(settings);

            services.AddSingleton <IOptions <PockyBotSettings> >(options);
            services.ConfigureCommonServices();
            services.ConfigurePersistenceServices(settings.DatabaseConnectionString);
            return(services);
        }
示例#11
0
 public Welcome(IOptions <PockyBotSettings> pockyBotOptions, IConfigRepository configRepository)
 {
     _configRepository = configRepository;
     _pockyBotSettings = pockyBotOptions.Value;
 }
示例#12
0
 public TriggerResponseTester(IOptions <PockyBotSettings> settings, IPockyUserRepository pockyUserRepository)
 {
     _settings            = settings.Value;
     _pockyUserRepository = pockyUserRepository;
 }