public void DontFailIfNoLocales() { // arrange var test = new LocalizedStringVariable(new Dictionary <string, string>()); var language = createTestLanguage(0); // act & assert Assert.DoesNotThrow(() => { test.GetValue(language); }); Assert.DoesNotThrow(() => { test.GetValue(language.Culture); }); }
public void FailIfMissingLocale() { // arrange var test = new LocalizedStringVariable(new Dictionary <string, string> { { "c1", "Value 1" }, { "c2", "Value 2" }, }); var language = createTestLanguage(0); // act & assert var error = Assert.Throws <AbsentLocaleException>(() => { test.GetValue(language); }); Assert.AreEqual("c0", error.Locale); error = Assert.Throws <AbsentLocaleException>(() => { test.GetValue(language.Culture); }); Assert.AreEqual("c0", error.Locale); }
public void TestVariableStrings() { // arrange var test = new LocalizedStringVariable(new Dictionary <string, string> { { "c1", "Value 1" }, { "c2", "Value 2" }, }); var language1 = createTestLanguage(1); var language2 = createTestLanguage(2); // act string value1language = test.GetValue(language1); string value2language = test.GetValue(language2); string value1culture = test.GetValue(language1.Culture); string value2culture = test.GetValue(language2.Culture); // assert Assert.AreEqual("Value 1", value1language); Assert.AreEqual("Value 2", value2language); Assert.AreEqual("Value 1", value1culture); Assert.AreEqual("Value 2", value2culture); }
public SemanticNetwork(ILanguage language) { Modules = new Dictionary <String, IExtensionModule>(); var name = new LocalizedStringVariable(); name.SetLocale(language.Culture, Strings.NewKbName); Name = name; var systemContext = new SystemContext(language); var concepts = new EventCollection <IConcept>(); concepts.ItemRemoved += (sender, args) => { foreach (var statement in Statements.Where(r => r.GetChildConcepts().Contains(args.Item)).ToList()) { Statements.Remove(statement); } }; Concepts = concepts; var statements = new EventCollection <IStatement>(); statements.ItemAdded += (sender, args) => { if (args.Item.Context == null) { var context = Context as IContext ?? systemContext; args.Item.Context = context; } args.Item.Context.Scope.Add(args.Item); foreach (var concept in args.Item.GetChildConcepts()) { if (!Concepts.Contains(concept)) { Concepts.Add(concept); } } }; statements.ItemRemoved += (sender, args) => { if (args.Item.Context == Context || args.Item.Context == systemContext) { args.Item.Context.Scope.Remove(args.Item); args.Item.Context = null; } }; Statements = statements; Context = systemContext.Instantiate(this); EventHandler <CancelableItemEventArgs <IStatement> > systemStatementProtector = (sender, args) => { if (args.Item.Context != null && args.Item.Context.IsSystem) { args.IsCanceled = true; } }; statements.ItemAdding += systemStatementProtector; statements.ItemRemoving += systemStatementProtector; }