public WordMatrixService() { _rulesRepository = new RulesRepository(); _valuesRepository = new ValuesRepository(); _wordsRepository = new WordsRepository(); _cypherRepository = new CypherRepository(); }
public async Task RulesUpdated_OnRulesChangeEventHasBeenFired() { // Arrange var timesCalled = 0; var versions = new ReplaySubject <string>(1); var versionsMock = new Mock <IRulesetVersionProvider>(); versionsMock.Setup(x => x.OnVersion()).Returns(versions); var driverMock = new Mock <IRulesDriver>(); driverMock.Setup(x => x.GetRuleset(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new Dictionary <string, RuleDefinition>())); var repository = new RulesRepository(driverMock.Object, versionsMock.Object, TimeSpan.Zero, TimeSpan.FromMinutes(1)); repository.OnRulesChange += rules => Interlocked.Increment(ref timesCalled); // Act versions.OnNext("10001"); await Task.Delay(10); versions.OnNext("10002"); await Task.Delay(10); versions.OnNext("10003"); await Task.Delay(10); // Assert Assert.Equal("10003", repository.CurrentLabel); Assert.Equal(3, timesCalled); }
private object RulesRepositoryFactory(IUnityContainer container) { RulesRepository rulesRepository = new RulesRepository(); Rules.AddTo(rulesRepository); return(rulesRepository); }
public void TestTryLoadExistingRulesList() { DirectoryInfo di = new DirectoryInfo(rulesFolder); RulesRepository rr = new RulesRepository("testRules", di); string ruleListFile = string.Format("{0}{1}{2}.rul", rulesFolder, Path.DirectorySeparatorChar, rr.Name); if (!File.Exists(ruleListFile)) { rr.TryLoadNewRulesList(); rr.TrySaveRulesList(); if (!File.Exists(ruleListFile)) { Assert.Fail("Can not run test TestTryLoadExistingRulesList. No existing rule file was found, and a new one could not be created"); } } rr.TryLoadExistingRulesList(); Assert.AreEqual(2, rr.MyRules.Count, "Invalid number of Rules loaded by TryLoadRulesList"); foreach (Rule currentRule in rr.MyRules.Values) { switch (currentRule.FriendlyName) { case "SetValue": case "IncrementValue": break; default: Assert.Fail("Unexpected rule file loaded from the Repository."); break; } } }
public async Task ExceptionThrown_ShouldRecoverFromException() { var versions = new ReplaySubject <string>(1); var versionsMock = new Mock <IRulesetVersionProvider>(); versionsMock.Setup(x => x.OnVersion()).Returns(versions); var driverMock = new Mock <IRulesDriver>(); driverMock.Setup(x => x.GetRuleset(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new Dictionary <string, RuleDefinition>())); var repository = new RulesRepository(driverMock.Object, versionsMock.Object, TimeSpan.Zero, TimeSpan.FromMinutes(1)); // Act versions.OnNext("10001"); await Task.Delay(10); var newVersions = new ReplaySubject <string>(1); newVersions.OnNext("10002"); versionsMock.Setup(x => x.OnVersion()).Returns(newVersions); versions.OnError(new Exception()); await Task.Delay(20); // Assert Assert.Equal("10002", repository.CurrentLabel); }
public async Task VersionsTimeout_ResubscribeToVersions() { // Arrange var scheduler = new TestScheduler(); var versionsMock = new Mock <IRulesetVersionProvider>(); versionsMock.Setup(x => x.OnVersion()).Returns(Observable.Never <string>()); var driverMock = new Mock <IRulesDriver>(); driverMock.Setup(x => x.GetRuleset(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new Dictionary <string, RuleDefinition>())); var repository = new RulesRepository(driverMock.Object, versionsMock.Object, TimeSpan.Zero, TimeSpan.FromMinutes(10), scheduler: scheduler); // Act await Task.Delay(10); var versions = new ReplaySubject <string>(1); versions.OnNext("10001"); versionsMock.Setup(x => x.OnVersion()).Returns(versions); scheduler.AdvanceBy(TimeSpan.FromMinutes(11).Ticks); await Task.Delay(10); // Assert Assert.Equal("10001", repository.CurrentLabel); }
public void RuleAvailableInRepository() { var repository = new RulesRepository(); Rules.AddTo(repository); Assert.That(repository.Get(RuleName), Is.Not.Null); Assert.That(repository.GetAll(), Has.One.Matches(Has.Property("Name").EqualTo(RuleName))); }
//[TearDown] public void TearDown() { DeviceRepository.Clear(); AccessKeyRepository.Clear(); WorkflowRepository.Clear(); RulesRepository.Clear(); ScheduleRepository.Clear(); }
public void Setup() { _rulesRepo = new RulesRepository(); _rulesRepoMock = new Mock <IRulesRepository>(); _balanceProviderMock = new Mock <IBalanceProvider>(); _monthlyProviderMock = new Mock <IMonthlyJobProvider>(); _rulesController = new RulesController(_balanceProviderMock.Object, _monthlyProviderMock.Object); _rulesRepoMock.Setup(x => x.GetMinBalance(It.IsAny <int>())).Returns(1000); _balanceProviderMock.Setup(x => x.GetMinBalance(It.IsAny <int>())).Returns(1000); }
static void Main(string[] args) { factory = new CommandFactory(); rulesRepository = new RulesRepository(); Console.WriteLine("This is the getting ready app. Please enter a weather type and a list of commands."); Console.WriteLine("If you need help, enter \"help\", if you are finished, enter \"exit\"\n"); string input; while ((input = Console.ReadLine()).ToLower() != "exit") { RunProgram(input); } }
public static void Main(string[] args) { PrintGreeting(); if (args.Length == 0) { PrintUsage(); Environment.Exit(0); } string slnFile = Path.GetFullPath(args[0]); if (!File.Exists(slnFile)) { Console.WriteLine("Specified parameter is expected to be an existing Visual Studio solution file."); Console.WriteLine("Parameter: {0}", args[0]); Environment.Exit(-1); } Console.WriteLine("Analyzing solution {0}", slnFile); Console.WriteLine(); ISolution solution = SolutionReader.Read(slnFile); List <IIssue> issues = new List <IIssue>(); foreach (IRule rule in RulesRepository.GetAllRules()) { issues.AddRange(rule.Apply(solution)); } if (issues.Count == 0) { Console.WriteLine("No issues were found."); } else { string lastFile = null; foreach (IIssue issue in issues.OrderBy(x => x.File)) { if (lastFile != issue.File) { Console.WriteLine("File: {0}", issue.File); lastFile = issue.File; } Console.WriteLine("[{0}] {1}", issue.Code, issue.Text); } Environment.ExitCode = -1; } }
public void Setup() { m_RuleOne = Substitute.For <IRule>(); m_RuleOne.Priority.Returns(2); m_RuleTwo = Substitute.For <IRule>(); m_RuleTwo.Priority.Returns(1); m_Rules = new[] { m_RuleOne, m_RuleTwo }; m_Sut = new RulesRepository(m_Rules); }
public static void WriteAutofacDependencies(string fileLocation) { var builder = new ContainerBuilder(); //Хардкод, разобраться с этим. Вообще, сделать или фабрику, или чтобы передавались аргументы конструктора IRulesRepository repository = new RulesRepository(fileLocation); var groupSelector = new MyGroupSelector(); var subgroupSelector = new MySubgroupSelector(); var detailSelector = new MyDetailSelector(); IMainWindowViewModel mainVindowVM = new MainWindowViewModel(repository, groupSelector, subgroupSelector, detailSelector); //Синглтон, неприемлемо, разобраться с этим builder.RegisterInstance <IMainWindowViewModel>(mainVindowVM); DI.DIContainer.Container = builder.Build(); }
public JObject PostRule([FromBody] JObject body, string accessKey = null) { if (!AccessKeyHelper.CanAdminRules(accessKey)) { Response.StatusCode = StatusCodes.Status401Unauthorized; return(null); } var ruleObj = new Rule(body); RulesRepository.Add(ruleObj); return(ruleObj.ToJObject()); //var id = body["id"]?.ToString(); //return RulesRepository.Get(id).ToJObject(); }
public ActionResult Add(EditVM model) { if (!ModelState.IsValid) { return(PartialView("~/Views/Partials/Edits/_EditComment.cshtml", model)); } RulesRepository repo = new RulesRepository(); Rule item = new Rule(); model.PopulateEntity(item); repo.Save(item); return(Content("")); }
public ActionResult Add(int?id, int?SubRedditId) { Rule item = null; RulesRepository repo = new RulesRepository(); item = id == null ? new Rule() : repo.GetById(id.Value); EditVM model = item == null ? new EditVM() : new EditVM(item); if (model.Id <= 0) { model.SubRedditId = SubRedditId.Value; } return(PartialView("~/Views/Partials/Edits/_EditRules.cshtml", model)); }
public void DeleteRule(string id, string accessKey = null) { if (!AccessKeyHelper.CanAdminRules(accessKey)) { Response.StatusCode = StatusCodes.Status401Unauthorized; return; } var ruleObj = RulesRepository.Get(id); if (ruleObj == null) { Response.StatusCode = StatusCodes.Status404NotFound; return; } RulesRepository.Delete(ruleObj); }
public void TestTrySaveRulesList() { DirectoryInfo di = new DirectoryInfo(rulesFolder); RulesRepository rr = new RulesRepository("testRules", di); string ruleListFile = string.Format("{0}{1}{2}.rul", rulesFolder, Path.DirectorySeparatorChar, rr.Name); if (File.Exists(ruleListFile)) { File.SetAttributes(ruleListFile, FileAttributes.Normal); File.Delete(ruleListFile); } //Load a new rule list so that we have something to save. rr.TryLoadNewRulesList(); rr.TrySaveRulesList(); Assert.IsTrue(File.Exists(ruleListFile), "TrySaveRulesList failed to create the rule file"); }
public JArray GetRules(string accessKey = null) { if (!AccessKeyHelper.CanAdminRules(accessKey)) { Response.StatusCode = StatusCodes.Status401Unauthorized; return(null); } var jArray = new JArray(); foreach (var ruleObj in RulesRepository.Get()) { var jObj = ruleObj.ToJObject(); jArray.Add(jObj); } return(jArray); }
public void TestProcessRule() { DirectoryInfo di = new DirectoryInfo(rulesFolder); RulesRepository rr = new RulesRepository("testRules", di); //Load a new rule list so that we have rules to execute. rr.TryLoadNewRulesList(); TestClass tc = new TestClass(); Dictionary <string, object> contextObjects = new Dictionary <string, object>(); contextObjects.Add("TestObject", tc); IBRERuleResult ruleResult; rr.ProcessRule("SetValue", contextObjects, out ruleResult); Assert.AreEqual(5, tc.MyValue, "The rule processed, but did not correctly set the value on the test object"); }
public void GetAllRules_SameProviderInstances_ReturnsExpectedRulesForLanguage() { var jsonFilePath = GetRuleDefinitionFilePath("RuleDefns_CheckLanguageFiltering.json"); var testSubject = new RulesRepository(jsonFilePath); // 1. TypeScript var tsProvider = (ITypeScriptRuleDefinitionsProvider)testSubject; var tsRuleKeys = tsProvider.GetDefinitions() .Select(x => x.RuleKey); tsRuleKeys.Should().BeEquivalentTo("typescript:S2092", "typescript:S3524", "TypeSCRIPT:S1135"); // 2. JavaScript var jsProvider = (IJavaScriptRuleDefinitionsProvider)testSubject; var jsRuleKeys = jsProvider.GetDefinitions() .Select(x => x.RuleKey); jsRuleKeys.Should().BeEquivalentTo("javascript:S1135", "JAVASCRIPT:xyz"); }
public void TestTryLoadNewRulesList() { DirectoryInfo di = new DirectoryInfo(rulesFolder); RulesRepository rr = new RulesRepository("testRules", di); rr.TryLoadNewRulesList(); Assert.AreEqual(2, rr.MyRules.Count, "Invalid number of Rules loaded by TryLoadRulesList"); foreach (Rule currentRule in rr.MyRules.Values) { switch (currentRule.FriendlyName) { case "SetValue": case "IncrementValue": break; default: Assert.Fail("Unexpected rule file loaded from the Repository."); break; } } }
public void LoadRuleMetadataFromFile() { // There should be a copy of the rules metadata file in the test bin directory var filePath = Path.Combine( Path.GetDirectoryName(this.GetType().Assembly.Location), "ts\\sonarlint-metadata.json" ); File.Exists(filePath).Should().BeTrue("Test setup error: could not find rule metadata file. Expected path: " + filePath); // Sanity check that the json file is loadable and has rules var rulesProvider = new RulesRepository(filePath); var jsRules = ((IJavaScriptRuleDefinitionsProvider)rulesProvider).GetDefinitions(); CheckRules("JavaScript", jsRules); var tsRules = ((ITypeScriptRuleDefinitionsProvider)rulesProvider).GetDefinitions(); CheckRules("TypeScript", tsRules); }
public override ActionResult Edit(EditVM model) { if (!ModelState.IsValid) { return(PartialView("~/Views/Partials/Edits/_EditSubreddit.cshtml", model)); } RulesRepository ruleRepo = new RulesRepository(); SubRedditsRepository repo = new SubRedditsRepository(); SubReddit item = new SubReddit(); model.PopulateEntity(item); model.Rules = ruleRepo.GetAll(a => a.SubRedditId == item.Id); repo.Save(item); model.Id = item.Id; // като създадеш събреддит, автоматично ставаш мод и се събскрайбваш за него repo.AddAdminToSubReddit(model.Id, model.UserId); repo.Subscribe(model.Id, model.UserId); return(Content("")); }
public StudentViewModel() { StatusItems.Add(new SelectListItem { Text = "Confirmed", Value = "Confirmed" }); StatusItems.Add(new SelectListItem { Text = "Waiting", Value = "Waiting" }); //get Courses list CoursesRepository coursesRepository = new CoursesRepository(); CoursesList = coursesRepository.GetAllCourses(); RulesRepository rulesRepository = new RulesRepository(); RulesList = rulesRepository.GetAllRules(); }
public async Task WhenVersionIsNewer_ShouldUpdateTheRules() { // Arrange var versions = new ReplaySubject <string>(1); var versionsMock = new Mock <IRulesetVersionProvider>(); versionsMock.Setup(x => x.OnVersion()).Returns(versions); var driverMock = new Mock <IRulesDriver>(); var repository = new RulesRepository(driverMock.Object, versionsMock.Object, TimeSpan.Zero, TimeSpan.FromMinutes(1)); // Act/Assert driverMock.Setup(x => x.GetRuleset(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult( new Dictionary <string, RuleDefinition> { { "test_rule1", new RuleDefinition() } })); versions.OnNext("10001"); var result = await repository.GetAllRules(); Assert.Equal("10001", repository.CurrentLabel); Assert.Equal("test_rule1", result.Keys.Single()); driverMock.Setup(x => x.GetRuleset(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult( new Dictionary <string, RuleDefinition> { { "test_rule2", new RuleDefinition() } })); versions.OnNext("10002"); await Task.Delay(10); result = await repository.GetAllRules(); Assert.Equal("10002", repository.CurrentLabel); Assert.Equal("test_rule2", result.Keys.Single()); }
public async Task WhenGivenEmptyRules_ShouldReturnExpectedVersionAndEmptyRules() { // Arrange var versions = new ReplaySubject <string>(1); versions.OnNext("10001"); var versionsMock = new Mock <IRulesetVersionProvider>(); versionsMock.Setup(x => x.OnVersion()).Returns(versions); var driverMock = new Mock <IRulesDriver>(); driverMock.Setup(x => x.GetRuleset(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new Dictionary <string, RuleDefinition>())); var repository = new RulesRepository(driverMock.Object, versionsMock.Object, TimeSpan.Zero, TimeSpan.FromMinutes(1)); // Act var result = await repository.GetAllRules(); // Assert Assert.Equal("10001", repository.CurrentLabel); Assert.Empty(result); }
public static RulesRepository With(this RulesRepository target, string path, IRule rule) { return(Merge(target, With(path, rule))); }
public static GetRuleValue GetRulesEvaluator(HashSet <Identity> identities, GetLoadedContextByIdentityType contextByIdentity, RulesRepository rules) { var identityTypes = identities.Select(x => x.Type).ToArray(); var flattenContext = ContextHelpers.FlattenLoadedContext(contextByIdentity); GetRuleValue getRuleValue = null; GetContextValue recursiveContext = key => { if (key.StartsWith("@@key:")) { key = key.Replace("@@key:", "keys."); } if (!key.StartsWith("keys.")) { return(Option <JsonValue> .None); } var path = new ConfigurationPath(key.Split('.')[1]); return(getRuleValue(path).Map(x => x.Value)); }; var context = ContextHelpers.Merge(flattenContext, recursiveContext); getRuleValue = Memoize(path => { foreach (var identity in identityTypes) { var fixedResult = ContextHelpers.GetFixedConfigurationContext(context, identity)(path); if (fixedResult.IsSome) { return(fixedResult); } } return(rules(path).Bind(x => x.GetValue(context))); }); return(getRuleValue); }
public void TestProcessRule() { DirectoryInfo di = new DirectoryInfo(rulesFolder); RulesRepository rr = new RulesRepository("testRules", di); //Load a new rule list so that we have rules to execute. rr.TryLoadNewRulesList(); TestClass tc = new TestClass(); Dictionary<string, object> contextObjects = new Dictionary<string, object>(); contextObjects.Add("TestObject", tc); IBRERuleResult ruleResult; rr.ProcessRule("SetValue", contextObjects, out ruleResult); Assert.AreEqual(5, tc.MyValue, "The rule processed, but did not correctly set the value on the test object"); }
public BalanceProvider() { _rules = new RulesRepository(); }