public void PerfFullInfo() { const int CNT = 1000000; var sw = Stopwatch.StartNew(); for (var i = 0; i < CNT; i++) { var name = NaturalTextGenerator.GenerateFirstName() + " " + NaturalTextGenerator.GenerateLastName(); var addr = NaturalTextGenerator.GenerateAddressLine(); var csz = NaturalTextGenerator.GenerateUSCityStateZip(); } var elapsed = sw.ElapsedMilliseconds; var ops = CNT / (elapsed / 1000d); Console.WriteLine("Genereated {0} full infos, in {1:n0} ms at {2:n0} ops/sec", CNT, elapsed, ops); Aver.IsTrue(ops > 180000);//180,000 ops/sec }
public void IsOfType() { Type x = GetType(); Aver.IsTrue(GetType() == x.IsOfType <GuardTests>()); Aver.IsTrue(GetType() == x.IsOfType <object>()); x = typeof(AzosException); Aver.IsTrue(typeof(AzosException) == x.IsOfType <Exception>()); Aver.IsTrue(typeof(AzosException) == x.IsOfType <object>()); Aver.Throws <CallGuardException>(() => x.IsOfType <GuardTests>()); x = null; Aver.Throws <CallGuardException>(() => x.IsOfType <object>()); x = typeof(Exception); Aver.Throws <CallGuardException>(() => x.IsOfType <AzosException>()); }
public void OrderedRegistry_Clear() { var reg = new OrderedRegistry <OrderedClazz>(); Aver.IsTrue(reg.Register(new OrderedClazz("Apple", 8, 1))); Aver.IsTrue(reg.Register(new OrderedClazz("Banana", -2, 2))); Aver.IsFalse(reg.Register(new OrderedClazz("Apple", 22, 3))); var ordered = reg.OrderedValues.ToArray(); Aver.AreEqual(2, ordered.Length); Aver.AreEqual("Banana", ordered[0].Name); Aver.AreEqual("Apple", ordered[1].Name); reg.Clear(); Aver.AreEqual(0, reg.Count); Aver.AreEqual(0, reg.OrderedValues.Count()); }
public void GeneralCmdArgs() { var conf = new CAC(args); Aver.AreEqual(@"tool.exe", conf.Root.AttrByIndex(0).ValueAsString()); Aver.AreEqual(@"c:\input.file", conf.Root.AttrByIndex(1).ValueAsString()); Aver.AreEqual(@"d:\output.file", conf.Root.AttrByIndex(2).ValueAsString()); Aver.AreEqual(true, conf.Root["compress"].Exists); Aver.AreEqual(100, conf.Root["compress"].AttrByName("level").ValueAsInt()); Aver.AreEqual("zip", conf.Root["compress"].AttrByName("method").ValueAsString()); Aver.AreEqual(true, conf.Root["shadow"].Exists); Aver.AreEqual("fast", conf.Root["shadow"].AttrByIndex(0).Value); Aver.AreEqual(1024, conf.Root["shadow"].AttrByName("swap").ValueAsInt()); Aver.AreEqual(true, conf.Root["large"].Exists); }
public void CH_EchoTwoCalls() { var conf = CONFIG1.AsLaconicConfig(handling: ConvertErrorHandling.Throw); using (var app = new AzosApplication(null, conf)) { using (var tester = app.GetServiceClientHub().MakeNew <ITesterClient>("/us/east/cle/a/ii/wmed0004")) { var arg = "Abcdefg"; var echoed = tester.TestEcho(arg); Aver.AreObjectsEqual(arg, echoed); arg = "Ze Rozenberg"; echoed = tester.TestEcho(arg); Aver.AreObjectsEqual(arg, echoed); } } }
public void Test_WithVariousNullableStructsDoc_StringMap() { var d1 = new WithVariousNullableStructsDoc { StringMap = new StringMap { { "a", "a value" } } }; var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap); json.See(); var map = json.JsonToDataObject() as JsonDataMap; var d2 = new WithVariousNullableStructsDoc(); JsonReader.ToDoc(d2, map); Aver.AreEqual(d1.StringMap["a"], d2.StringMap["a"]); }
public void Recursive4StackCleanup() { var conf = Azos.Conf.LaconicConfiguration.CreateFromString(src1); var attr = conf.Root["MyClass"]["data"]["extra"].AttrByName("cycle"); try { var v2 = attr.Value;//exception } catch (Exception error) { Console.WriteLine("Expected and got: " + error.Message); } //after exception, stack should cleanup and work again as expected Aver.AreEqual("val1", conf.Root["vars"]["var1"].Value); }
public void StringLines() { var txt = @"A,b, c,d,e f "; Aver.AreEqual("A,b,", txt.ReadLine()); var lines = txt.SplitLines(); Aver.AreEqual(4, lines.Length); Aver.AreEqual("A,b,", lines[0]); Aver.AreEqual("c,d,e", lines[1]); Aver.AreEqual("f", lines[2]); Aver.AreEqual("", lines[3]); }
public void FID3() { var CNT = 0xffff * 2; for (var c = 0; c < 37; c++) { var set1 = new FID[CNT]; var set2 = new FID[CNT]; for (var i = 0; i < CNT; i++) { set1[i] = FID.Generate(); set2[i] = FID.Generate(); } Aver.IsFalse(set1.Intersect(set2).Any()); Console.WriteLine("{0}: Set of {1} FIDs no intersection", c, CNT); } }
public void AlignDailyMinutesTests_008() { var a = new DateTime(1980, 1, 1, 2, 02, 00, DateTimeKind.Utc); var b = a.AlignDailyMinutes(300);//5 hours var c = new DateTime(1980, 1, 1, 5, 0, 00, DateTimeKind.Utc); Aver.AreEqual(c, b); a = new DateTime(1980, 1, 1, 18, 02, 00, DateTimeKind.Utc); b = a.AlignDailyMinutes(300);//5 h c = new DateTime(1980, 1, 1, 20, 0, 00, DateTimeKind.Utc); Aver.AreEqual(c, b); a = b.AddMinutes(2); b = a.AlignDailyMinutes(300);//5 h c = new DateTime(1980, 1, 2, 1, 0, 00, DateTimeKind.Utc); Aver.AreEqual(c, b); }
public void Test_DocList_4() { using (var app = new AzosApplication(null, BASE_CONF)) { var doc = new DocList(); doc.IMin = 1000; doc.DList = new List <object> { null, null, null, new DocCompositeField { D1 = new DocDirectField { S1 = "key" }, D2 = new DocDirectField { S1 = "key" } } }; Aver.IsNull(doc.Validate(app)); } }
public void NLSMap_JSONSerializationRoundtrip() { var content = "{eng: {n: 'Cucumber',d: 'It is green'}, deu: {n: 'Gurke', d: 'Es ist grün'}}"; var nls = new NLSMap(content); var json = nls.ToJson(); Console.WriteLine(json); var nls2 = new NLSMap(json); Aver.AreEqual(2, nls2.Count); Aver.AreEqual("Cucumber", nls2["eng"].Name); Aver.AreEqual("Gurke", nls2["deu"].Name); Aver.AreEqual(null, nls["rus"].Name); }
public void ReadWriteLEShortTestStream() { var ms = new MemoryStream(); ms.WriteLEShort(789); Aver.AreEqual(2, ms.Position); Aver.IsTrue((new byte[] { 21, 3 }).MemBufferEquals(ms.ToArray())); ms.Position = 0; Aver.AreEqual(789, ms.ReadLEShort()); ms.Position = 0; ms.WriteLEUShort(789); Aver.AreEqual(2, ms.Position); Aver.IsTrue((new byte[] { 21, 3 }).MemBufferEquals(ms.ToArray())); ms.Position = 0; Aver.AreEqual(789, ms.ReadLEUShort()); }
public void SingleEnumerable_AsEnumerable() { var enumerator = " ".AsLookAheadEnumerable().GetEnumerator(); Aver.Throws <InvalidOperationException>(() => { var current = enumerator.Current; }); Aver.IsTrue(enumerator.MoveNext()); Aver.AreEqual(enumerator.Current, ' '); Aver.IsFalse(enumerator.MoveNext()); enumerator.Reset(); Aver.Throws <InvalidOperationException>(() => { var current = enumerator.Current; }); Aver.IsTrue(enumerator.MoveNext()); }
public void Scope_Insensitive() { var scope = new SealedString.Scope(); var s1 = scope.Seal("Lenin"); var s2 = scope.Seal("has"); var s3 = scope.Seal("LeNIN"); var s4 = scope.Seal("LeNeN"); Aver.AreEqual(s1, s3); Aver.AreNotEqual(s1, s2); Aver.AreNotEqual(s1, s4); Aver.AreEqual(3, scope.Count); Aver.AreEqual(s1, scope["LENIN"]); Aver.AreEqual(s2, scope["HAS"]); Aver.AreEqual(s4, scope["LENEN"]); }
public void CSVFileDestinationStartByConfig1() { var TNAME = "UnitTest-" + MethodBase.GetCurrentMethod().Name; var FNAME = TNAME + ".csv.log"; const string DATE = "20131012"; var xml = @"<log> <destination type='NFX.Log.Destinations.CSVFileDestination, NFX' name='{0}' path='$(@~path)' filename='$(::now fmt=yyyyMMdd value={1})-$($name).csv.log'/> </log>".Args(TNAME, DATE); var fname = Path.Combine(TEST_DIR, DATE + "-" + FNAME); IOMiscUtils.EnsureFileEventuallyDeleted(fname); using (var svc = new LSVC()) using (Scope.OnExit(() => File.Delete(fname))) { var cfg = XMLConfiguration.CreateFromXML(xml); cfg.EnvironmentVarResolver = new Vars(new VarsDictionary { { "path", TEST_DIR } }); svc.Configure(cfg.Root); svc.Start(); svc.Write(new Message { Text = "1 message" }); svc.Write(new Message { Text = "2 message" }); svc.Write(new Message { Text = "3 message" }); svc.WaitForCompleteStop(); Aver.IsTrue(File.Exists(fname)); Aver.AreEqual(3, File.ReadAllLines(fname).Length); } }
public void Basic_ManySequence() { var sut = new LocalGdidGenerator(NOPApplication.Instance); var set = new HashSet <ulong>(); const int CNT = 100; for (var i = 0; i < CNT; i++) { var got = sut.TryGenerateManyConsecutiveSequenceIds("a", "a", 16); "Start: {0} count: {1}".SeeArgs(got.StartInclusive, got.Count); Aver.AreEqual(16, got.Count); Aver.IsTrue(set.Add(got.StartInclusive)); //adding first and last Aver.IsTrue(set.Add(got.StartInclusive + (ulong)(got.Count - 1))); } Aver.AreEqual(CNT * 2, set.Count); }
public void Basic_ManyGdid() { var sut = new LocalGdidGenerator(NOPApplication.Instance); var set = new HashSet <GDID>(); const int CNT = 100; for (var i = 0; i < CNT; i++) { var got = sut.TryGenerateManyConsecutiveGdids("a", "a", 16); Aver.IsNotNull(got); Aver.AreEqual(16, got.Length); got.See(); got.ForEach(g => Aver.IsTrue(set.Add(g))); } Aver.AreEqual(CNT * 16, set.Count); }
public void Basic_OneGdid() { var sut = new LocalGdidGenerator(NOPApplication.Instance); //sut.Era = 39; //sut.Authority = 7; var set = new HashSet <GDID>(); const int CNT = 100; for (var i = 0; i < CNT; i++) { var got = sut.GenerateOneGdid("a", "a"); "{0} - {1}".SeeArgs(got, got.ToHexString()); Aver.IsTrue(set.Add(got)); } Aver.AreEqual(CNT, set.Count); }
public void DebugDestinationWriteTest() { var TNAME = "TestDest-" + MethodBase.GetCurrentMethod().Name; var FNAME = TNAME + ".log"; var fname = Path.Combine(TEST_DIR, FNAME); IOMiscUtils.EnsureFileEventuallyDeleted(FNAME); using (var svc = new TSLS()) using (Scope.OnExit(() => File.Delete(fname))) { svc.RegisterDestination( new DebugDestination(TNAME) { FileName = FNAME, Path = TEST_DIR }); svc.Start(); DateTime now = new DateTime(2013, 1, 2, 3, 4, 5); for (var i = 0; i < 10; i++) { svc.Write(new Message { Text = i.ToString(), TimeStamp = now }); } svc.WaitForCompleteStop(); Aver.IsTrue(File.Exists(fname)); string[] lines = File.ReadAllLines(fname); Aver.AreEqual(10, lines.Length); lines.Select((s, i) => { Aver.AreEqual( "20130102-030405.000000| {0}||Debug|{1}||0|".Args(Thread.CurrentThread.ManagedThreadId, i), s); return(0); }).ToArray(); } }
public void CustomWritableReadable_3() { var d1 = new CustomDoc3 { ID = "meduza3", Data = new CustomStructType[] { new CustomStructType("Custom string 3"), new CustomStructType("Gold for toad") } }; var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap); json.See(); var jsonMap = json.JsonToDataObject() as JsonDataMap; var d2 = new CustomDoc3(); JsonReader.ToDoc(d2, jsonMap); Aver.AreEqual(d1.ID, d2.ID); Aver.AreEqual(d1.Data[0].Text, d2.Data[0].Text); Aver.AreEqual(d1.Data[0].Length, d2.Data[0].Length); }
public void NLSMap_Get_Descr() { var content = "{eng: {n: 'Cucumber',d: 'It is green'}, deu: {n: 'Gurke', d: 'Es ist grün'}}"; var nls = new NLSMap(content); var descr = nls.Get(NLSMap.GetParts.Description); Aver.AreEqual("It is green", descr); descr = nls.Get(NLSMap.GetParts.Description, "deu"); Aver.AreEqual("Es ist grün", descr); descr = nls.Get(NLSMap.GetParts.Description, "XXX"); Aver.AreEqual("It is green", descr); descr = nls.Get(NLSMap.GetParts.Description, "XXX", dfltLangIso: "ZZZ"); Aver.IsNull(descr); }
public void NLSMap_Get_Name() { var content = "{eng: {n: 'Cucumber',d: 'It is green'}, deu: {n: 'Gurke', d: 'Es ist grün'}}"; var nls = new NLSMap(content); var name = nls.Get(NLSMap.GetParts.Name); Aver.AreEqual("Cucumber", name); name = nls.Get(NLSMap.GetParts.Name, "deu"); Aver.AreEqual("Gurke", name); name = nls.Get(NLSMap.GetParts.Name, "XXX"); Aver.AreEqual("Cucumber", name); name = nls.Get(NLSMap.GetParts.Name, "XXX", dfltLangIso: "ZZZ"); Aver.IsNull(name); }
public void Test_WithByteArrays_2() { var d1 = new WithByteArrays { Id = "Abc", Array1 = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } }; //written as BASE64 var json = d1.ToJson(); json.See(); var d2 = JsonReader.ToDoc <WithByteArrays>(json); Aver.AreEqual("Abc", d2.Id); Aver.IsNotNull(d2.Array1); d2.Array1.See(); Aver.AreArraysEquivalent(d1.Array1, d2.Array1); }
public void ComposeURLQueryString_NullOrEmptyQueryParts() { var pars = new Dictionary <string, object> { { "name", null } }; var result = WebUtils.ComposeURLQueryString(pars); Aver.AreEqual("name", result); pars = new Dictionary <string, object> { { "name", string.Empty }, }; result = WebUtils.ComposeURLQueryString(pars); Aver.AreEqual("name=", result); pars = new Dictionary <string, object> { { string.Empty, "ABBA" } }; result = WebUtils.ComposeURLQueryString(pars); Aver.AreEqual(string.Empty, result); pars = new Dictionary <string, object> { { "name1", null }, { "name2", string.Empty }, { string.Empty, "ABBA" } }; result = WebUtils.ComposeURLQueryString(pars); Aver.AreEqual("name1&name2=", result); pars = new Dictionary <string, object> { { "name1", string.Empty }, { "name2", null }, { string.Empty, "ABBA" }, { "name3", "John" } }; result = WebUtils.ComposeURLQueryString(pars); Aver.AreEqual("name1=&name2&name3=John", result); }
public static void TASKReturning_TestContractA_TwoWayCall(string CONF_SRC) { TestServerA.s_Accumulator = 0; var conf = LaconicConfiguration.CreateFromString(CONF_SRC); using (var app = new AzosApplication(null, conf.Root)) { var cl = new TestContractAClient(app.Glue, app.ConfigRoot.AttrByName("cs").Value); var call = cl.Async_Method1(12); var task = call.AsTaskReturning <string>(); var result = task.Result; Aver.AreEqual("12", result); Aver.AreEqual(12, TestServerA.s_Accumulator); } }
public void Exists() { var root1 = Azos.Conf.LaconicConfiguration.CreateFromString("details { name = 'John Smith'}").Root; var root2 = Azos.Conf.LaconicConfiguration.CreateFromString("details {}").Root; var node1 = root1.AttrByName("name"); var node2 = root2.AttrByName("name"); Aver.IsTrue(ConfigNodeEqualityComparer.Instance.Equals(node1, node1)); Aver.IsTrue(ConfigNodeEqualityComparer.Instance.Equals(node2, node2)); Aver.IsFalse(ConfigNodeEqualityComparer.Instance.Equals(node1, node2)); Aver.IsFalse(ConfigNodeEqualityComparer.Instance.Equals(node2, node1)); var node3 = root2.AttrByName("name"); Aver.IsTrue(ConfigNodeEqualityComparer.Instance.Equals(node3, node3)); Aver.IsTrue(ConfigNodeEqualityComparer.Instance.Equals(node2, node3)); Aver.IsTrue(ConfigNodeEqualityComparer.Instance.Equals(node3, node2)); }
public void List_Add() { var lst = new EventedList <string, string>("CONTEXT", false); var first = true; lst.GetReadOnlyEvent = (_) => false; lst.ChangeEvent = (l, ct, p, idx, v) => { Aver.AreObjectsEqual(EventedList <string, string> .ChangeType.Add, ct); Aver.AreObjectsEqual(first ? EventPhase.Before : EventPhase.After, p); Aver.AreEqual(-1, idx); Aver.AreEqual("a", v); first = false; }; lst.Add("a"); }
private void testMsgEquWoError(NFX.Log.Message msg, NFX.Log.Message got) { Aver.IsNotNull(got); Aver.AreNotSameRef(msg, got); Aver.AreEqual(msg.Guid, got.Guid); Aver.AreEqual(msg.RelatedTo, got.RelatedTo); Aver.AreEqual(msg.Host, got.Host); Aver.AreEqual(msg.TimeStamp, got.TimeStamp); Aver.IsTrue(msg.Type == got.Type); Aver.AreEqual(msg.Channel, got.Channel); Aver.AreEqual(msg.From, got.From); Aver.AreEqual(msg.Topic, got.Topic); Aver.AreEqual(msg.Text, got.Text); Aver.AreEqual(msg.Source, got.Source); Aver.AreEqual(msg.Parameters, got.Parameters); Aver.AreEqual(msg.ArchiveDimensions, got.ArchiveDimensions); }
public void CustomWritableReadable_2() { var d1 = new CustomDoc2 { ID = "meduza2", Data = new CustomStructType("Custom string 2") }; var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap); json.See(); var jsonMap = json.JsonToDataObject() as JsonDataMap; var d2 = new CustomDoc2(); JsonReader.ToDoc(d2, jsonMap); Aver.AreEqual(d1.ID, d2.ID); Aver.AreEqual(d1.Data.Value.Text, d2.Data.Value.Text); Aver.AreEqual(d1.Data.Value.Length, d2.Data.Value.Length); }