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(); }
public TriggerResponseTesterTests() { _settings = new PockyBotSettings(); _pockyUserRepository = Substitute.For <IPockyUserRepository>(); var options = Substitute.For <IOptions <PockyBotSettings> >(); options.Value.Returns(_settings); _subject = new TriggerResponseTester(options, _pockyUserRepository); }
public PegRequestValidatorTests() { _settings = new PockyBotSettings(); _configRepository = Substitute.For <IConfigRepository>(); var options = Substitute.For <IOptions <PockyBotSettings> >(); options.Value.Returns(_settings); _subject = new PegRequestValidator(options, _configRepository); }
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(); }
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; }
public Default(IOptions <PockyBotSettings> settings) { _settings = settings.Value; }
private void GivenPockyBotSettings(PockyBotSettings settings) { _settings.BotId = settings.BotId; _settings.BotName = settings.BotName; _settings.DatabaseConnectionString = settings.DatabaseConnectionString; }
public Help(IPockyUserRepository pockyUserRepository, IOptions <PockyBotSettings> pockySettings, IConfigRepository configRepository) { _pockyUserRepository = pockyUserRepository; _configRepository = configRepository; _pockyBotSettings = pockySettings.Value; }
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); }
public Welcome(IOptions <PockyBotSettings> pockyBotOptions, IConfigRepository configRepository) { _configRepository = configRepository; _pockyBotSettings = pockyBotOptions.Value; }
public TriggerResponseTester(IOptions <PockyBotSettings> settings, IPockyUserRepository pockyUserRepository) { _settings = settings.Value; _pockyUserRepository = pockyUserRepository; }