protected override void ProcessRecord() { base.ProcessRecord(); long index; if (!long.TryParse(Index, out index)) { index = -1; } // TODO: Validate Operator var newRule = new SeatClassificationRule { RuleName = RuleName, Notes = Notes, Order = index, Field = Field, Operator = Operator, Value = Value, Status = Status }; var systemFile = SeatClassificationFile.Load(SeatClassificationFile.SystemRuleFile); var experimentalFile = SeatClassificationFile.Load(SeatClassificationFile.ExperimentalFile); var engine = new SeatClassificationEngine(systemFile, experimentalFile); engine.AddRule(newRule, !_production); systemFile.Save(SeatClassificationFile.SystemRuleFile); experimentalFile.Save(SeatClassificationFile.ExperimentalFile); }
public void Save_WhenCalledWithNonEmptyFileObject_StoresFileToDisk() { // Arrange var sut = new SeatClassificationFile(); sut.Add(new SeatClassificationRule { RuleName = "Test", Field = ClassificationRuleField.BaseType, Operator = "Equals", Value = "1", Status = SeatStatus.AvailableForPurchase }); var path = "ClassificationRules.json"; if (File.Exists(path)) { File.Delete(path); } // Act sut.Save(path); // Assert File.Exists(path).Should().BeTrue("the file should have been saved"); File.Delete(path); }
public void Load_WhenLoadingSavedFile_GetsCorrectData() { // Arrange var sut = new SeatClassificationFile(); sut.Add(new SeatClassificationRule { RuleName = "Test", Notes = "Test notes", Field = ClassificationRuleField.BaseType, Operator = "Equals", Value = "1", Status = SeatStatus.AvailableForPurchase }); var path = "ClassificationRulesLoadAndSave.json"; if (File.Exists(path)) { File.Delete(path); } // Act sut.Save(path); var res = SeatClassificationFile.Load(path); File.Delete(path); // Assert res.Rules.Count().Should().Be(1, "we should have a single rule"); var rule = res.Rules.Single(); rule.RuleName.Should().Be("Test", "that was the name given to the original rule"); rule.Notes.Should().Be("Test notes"); rule.Field.Should().Be(ClassificationRuleField.BaseType, "that was the original content of Field"); rule.Operator.Should().Be("Equals"); rule.Value.Should().Be("1"); rule.Status.Should().Be(SeatStatus.AvailableForPurchase); }