Esempio n. 1
0
        public void DefaultMappings_Generic()
        {
            using (var app = new AzosApplication(null, null))
            {
                var maps = app.GetContentTypeMappings();
                Aver.IsNotNull(maps);

                Aver.IsNull(maps["cracks-pacs-facs"]);

                var map = maps.MapFileExtension("cracks-pacs-facs");
                Aver.IsNotNull(map);
                Aver.IsTrue(map.IsGeneric);
                Aver.IsTrue(map.IsBinary);
                Aver.IsFalse(map.IsText);
                Aver.IsFalse(map.IsImage);
                Aver.IsNotNull(map.Metadata);
                Aver.IsFalse(map.Metadata.Exists);

                Aver.AreSameRef(ContentType.Mapping.GENERIC_BINARY, map);
            }
        }
Esempio n. 2
0
        public void ParseFolderFileParameters()
        {
            string bucket;
            string region;
            string itemLocalPath;
            IDictionary <string, string> queryParams;

            S3V4URLHelpers.Parse("https://dxw.s3-us-west-2.amazonaws.com/MyFolder/MyFile1.txt?marker=1&max-keys=100",
                                 out bucket, out region, out itemLocalPath, out queryParams);

            Aver.AreEqual("dxw", bucket);
            Aver.AreEqual("us-west-2", region);
            Aver.AreEqual("MyFolder/MyFile1.txt", itemLocalPath);

            Aver.IsNotNull(queryParams);
            Aver.AreEqual(2, queryParams.Count);
            Aver.IsTrue(queryParams.ContainsKey("marker"));
            Aver.IsTrue(queryParams.ContainsKey("max-keys"));
            Aver.AreEqual("1", queryParams["marker"]);
            Aver.AreEqual("100", queryParams["max-keys"]);
        }
Esempio n. 3
0
        public void Dated2GDIDWithISOKey_CreateEquate_3()
        {
            var dt1 = new DateTime(1980, 10, 2, 14, 0, 0, DateTimeKind.Utc);
            var dt2 = new DateTime(1980, 10, 2, 0, 18, 0, DateTimeKind.Utc);

            var k1 = new Dated2GDIDWithISOKey(dt1, new GDID(10, 20), new GDID(10, 30), "ua");
            var k2 = new Dated2GDIDWithISOKey(dt2, new GDID(10, 20), new GDID(10, 30), "UA");

            Aver.AreEqual("UA", k1.ISOCode);
            Aver.AreEqual("UA", k2.ISOCode);
            Aver.AreEqual(k1, k2);

            Aver.IsTrue(k1.Equals(k2));
            var o = k2;

            Aver.IsTrue(k1.Equals(o));

            Aver.AreEqual(k1.GetHashCode(), k2.GetHashCode());
            Aver.AreEqual(k1.GetDistributedStableHash(), k2.GetDistributedStableHash());
            Console.WriteLine(k1.ToString());
        }
Esempio n. 4
0
        public void T24()
        {
            var tran = new LockTransaction("Testing 101", "A", 0, 0.0d,
                                           LockOp.Block(
                                               LockOp.SelectConstantValue("A", 123),
                                               LockOp.If(
                                                   LockOp.False,//condition
                                                   LockOp.SelectConstantValue("B", "THEN"),
                                                   LockOp.Abort()
                                                   )//if
                                               )
                                           );

            var session = new Agni.Locking.Server.LockSessionData(new LockSessionID(null), "My session", 1000);

            var result = m_Server.ExecuteLockTransaction(session, tran);

            Aver.IsTrue(LockStatus.TransactionError == result.Status);
            Aver.IsTrue(LockErrorCause.Statement == result.ErrorCause);
            Aver.AreEqual("0:/BlockOp/IfOp/AbortOp/", result.FailedStatement);
        }
Esempio n. 5
0
        public void WithoutPRAGMA_2()
        {
            var src =
                @"a123
b
c
d
e
f
g
h
j
k";

            var qs = new QuerySource("1", src);

            Aver.IsFalse(qs.HasPragma);
            Aver.IsTrue(qs.ReadOnly);
            Aver.AreEqual("a123", qs.OriginalSource.ReadLine());
            Aver.AreEqual("a123", qs.StatementSource.ReadLine());
        }
Esempio n. 6
0
        public void T11()
        {
            var tran = new LockTransaction("Testing 101", "A", 0, 0.0d,
                                           LockOp.Assert(LockOp.True),
                                           LockOp.Assert(LockOp.And(LockOp.True, LockOp.True)),
                                           LockOp.Assert(LockOp.Or(LockOp.False, LockOp.True)),
                                           LockOp.Assert(LockOp.Not(LockOp.Or(LockOp.False, LockOp.False))),
                                           LockOp.Assert(LockOp.Not(LockOp.False)),
                                           LockOp.Assert(LockOp.Xor(LockOp.False, LockOp.True)),
                                           LockOp.Assert(LockOp.Xor(LockOp.True, LockOp.False)),
                                           LockOp.Assert(LockOp.Not(LockOp.Xor(LockOp.False, LockOp.True))),
                                           LockOp.Assert(LockOp.Not(LockOp.Xor(LockOp.False, LockOp.False)))
                                           );

            var session = new Agni.Locking.Server.LockSessionData(new LockSessionID(null), "My session", 1000);
            var result  = m_Server.ExecuteLockTransaction(session, tran);

            Aver.IsTrue(LockStatus.TransactionError == result.Status);
            Aver.IsTrue(LockErrorCause.Statement == result.ErrorCause);
            Aver.AreEqual("7:/AssertOp/", result.FailedStatement);
        }
Esempio n. 7
0
        public void JsonRoundTripWithSameName()
        {
            // Laconic:  root{a{n=1}a{}a=3{n=2}}
            // JSON:     {"root":{"a":[{"n":"1"},{},{"-section-value":"3","n":"2"}]}}
            var c1 = @"root
{
  a{ n=1}
  a{ }
  a=3{ n=2}
}
//".AsLaconicConfig(handling: ConvertErrorHandling.Throw);

            var json = c1.ToJSONString();

            Console.WriteLine(c1.ToLaconicString(Azos.CodeAnalysis.Laconfig.LaconfigWritingOptions.Compact));
            Console.WriteLine(json);

            var c2 = json.AsJSONConfig();

            Aver.IsTrue(ConfigNodeEqualityComparer.Instance.Equals(c1, c2));
        }
Esempio n. 8
0
        public void Validate_PersonWithNesting_Error_ComplexFieldSubFieldRequired()
        {
            var person = new PersonWithNesting {
                ID            = "POP1",
                FirstName     = "Oleg",
                LastName      = "Popov",
                DOB           = new DateTime(1953, 12, 10),
                YearsInSpace  = 45,
                Amount        = 100,
                LatestHistory = new HistoryItem {
                    ID = null, StartDate = DateTime.Now, Description = "Chaplin is here"
                },
                History1 = new List <HistoryItem>(),
                History2 = new HistoryItem[2]
            };
            var error = person.Validate();

            Console.WriteLine(error);
            Aver.IsTrue(error is FieldValidationException);
            Aver.AreEqual("ID", ((FieldValidationException)error).FieldName);
        }
Esempio n. 9
0
        public void AngleToMapDirection()
        {
            Aver.IsTrue(Azos.Geometry.MapDirection.North ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.North)));
            Aver.IsTrue(Azos.Geometry.MapDirection.South ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.South)));
            Aver.IsTrue(Azos.Geometry.MapDirection.East ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.East)));
            Aver.IsTrue(Azos.Geometry.MapDirection.West ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.West)));

            Aver.IsTrue(Azos.Geometry.MapDirection.NorthEast ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.NorthEast)));
            Aver.IsTrue(Azos.Geometry.MapDirection.NorthWest ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.NorthWest)));

            Aver.IsTrue(Azos.Geometry.MapDirection.SouthEast ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.SouthEast)));
            Aver.IsTrue(Azos.Geometry.MapDirection.SouthWest ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.SouthWest)));
        }
Esempio n. 10
0
        public async Task ManyRowsInsertAndReadASYNC()
        {
            using (var ds = makeDataStore())
            {
                var patients = new List <Patient>();
                for (var i = 1; i < 2_000; i++)
                {
                    var row = makePatient("Ivanov" + i);
                    row.COUNTER = i;
                    patients.Add(row);
                    await ds.InsertAsync(row);
                }

                var qry = new Query <Patient>("CRUD.Queries.Patient.List")
                {
                    new Query.Param("LN", "Ivanov%")
                };
                var result = (await ds.LoadEnumerableAsync(qry)).OrderBy(p => p.COUNTER);
                Aver.IsTrue(patients.Select(p => p.Last_Name).SequenceEqual(result.Select(r => r.Last_Name)));
            }
        }
Esempio n. 11
0
        public void ManyRowsInsertAndRead()
        {
            using (var ds = makeDataStore())
            {
                var patients = new List <Patient>();
                for (var i = 0; i < 1000; i++)
                {
                    var row = makeDefaultPatient("Ivanov" + i);
                    patients.Add(row);
                    ds.Insert(row);
                }

                ds.QueryResolver.ScriptAssembly = ASSEMBLY;
                var qry = new Query <Patient>("CRUD.Patient.List")
                {
                    new Query.Param("LN", "Ivanov%")
                };
                var result = ds.LoadEnumerable(qry).OrderBy(p => p.COUNTER);
                Aver.IsTrue(patients.Select(p => p.Last_Name).SequenceEqual(result.Select(r => r.Last_Name)));
            }
        }
Esempio n. 12
0
        public void PatternSearch6_LoopUntilMatch()
        {
            var src = @"{a: 'Budilnik', 'Name': 'Znatoki', q: 2, z: 148, 'hero': 0x7f}";

            var lxr = new JL(new StringSource(src));


            var capture = lxr.LazyFSM(
                (s, t) => s.LoopUntilMatch(
                    (ss, tk) => tk.IsAnyOrAbort(JSONTokenType.tStringLiteral),
                    (ss, tk) => tk.IsAnyOrAbort(JSONTokenType.tColon),
                    (ss, tk) => tk.IsAnyOrAbort(JSONTokenType.tStringLiteral),
                    (ss, tk) => FSMI.TakeAndComplete
                    ),
                (s, t) => FSMI.Take
                );

            Aver.IsNotNull(capture);
            Aver.IsTrue(JSONTokenType.tStringLiteral == capture.Type);
            Aver.AreObjectsEqual("Name", capture.Value);
        }
Esempio n. 13
0
        public void LogChanges_Update()
        {
            var tbl = new Rowset(Schema.GetForTypedDoc(typeof(Person)));


            tbl.Insert(new Person {
                ID           = "POP1",
                FirstName    = "Oleg",
                LastName     = "Popov",
                DOB          = new DateTime(1953, 12, 10),
                YearsInSpace = 12
            });
            tbl.LogChanges = true;

            tbl.Update(tbl[0]);


            Aver.AreEqual(1, tbl.ChangeCount);

            Aver.IsTrue(DocChangeType.Update == tbl.GetChangeAt(0).Value.ChangeType);
        }
Esempio n. 14
0
        public void FromLong()
        {
            object obj = 123L;

            Aver.AreEqual(123, obj.AsShort());
            Aver.AreEqual(123, obj.AsNullableShort());

            Aver.AreEqual(123, obj.AsUShort());
            Aver.AreEqual(123, obj.AsNullableUShort());

            Aver.AreEqual(123, obj.AsInt());
            Aver.AreEqual(123, obj.AsNullableInt());

            Aver.AreEqual(123u, obj.AsUInt());
            Aver.AreEqual(123, obj.AsNullableUInt());

            Aver.AreEqual(123L, obj.AsLong());
            Aver.AreEqual(123L, obj.AsNullableLong());

            Aver.AreEqual(123UL, obj.AsULong());
            Aver.AreEqual(123UL, obj.AsNullableULong());

            Aver.AreEqual(123d, obj.AsDouble());
            Aver.AreEqual(123d, obj.AsNullableDouble());

            Aver.AreEqual(123f, obj.AsFloat());
            Aver.AreEqual(123f, obj.AsNullableFloat());

            Aver.AreEqual(123m, obj.AsDecimal());
            Aver.AreEqual(123m, obj.AsNullableDecimal());

            Aver.AreEqual(true, obj.AsBool());
            Aver.AreEqual(true, obj.AsNullableBool());

            Aver.AreEqual("123", obj.AsString());
            Aver.AreEqual(123, obj.AsDateTime().Ticks);
            Aver.AreEqual(123, obj.AsTimeSpan().Ticks);

            Aver.IsTrue(TestEnum.B == obj.AsEnum(TestEnum.A));
        }
Esempio n. 15
0
        public void T16()
        {
            var tran1 = new LockTransaction("Testing 101", "A", 0, 0.0d,
                                            LockOp.Assert(LockOp.SetVar("tblMany2", "Dima1", 12345, "Set Dima to 12345"))

                                            );

            var tran2 = new LockTransaction("Testing 101", "A", 0, 0.0d,
                                            LockOp.Assert(LockOp.SetVar("tblMany2", "Dima1", 78901, "Set Dima to 78901", allowDuplicates: true)) //DUPLICATES ARE ALLOWED NOW

                                            );

            var session1 = new Agni.Locking.Server.LockSessionData(new LockSessionID(null), "My session", 1000);
            var session2 = new Agni.Locking.Server.LockSessionData(new LockSessionID(null), "My session", 1000);
            var session3 = new Agni.Locking.Server.LockSessionData(new LockSessionID(null), "My session", 1000);

            var result = m_Server.ExecuteLockTransaction(session1, tran1);

            Aver.IsTrue(LockStatus.TransactionOK == result.Status);

            result = m_Server.ExecuteLockTransaction(session2, tran2);
            Aver.IsTrue(LockStatus.TransactionOK == result.Status);


            var read = new LockTransaction("Testing 101", "A", 0, 0.0d,
                                           LockOp.SelectVarValue("MY-RESULT", "tblMany2", "Dima1", selectMany: true)
                                           );

            result = m_Server.ExecuteLockTransaction(session3, read);
            Aver.IsTrue(LockStatus.TransactionOK == result.Status);

            var svar = (Agni.Locking.Server.Variable[])result["MY-RESULT"];

            Aver.AreEqual(2, svar.Length);
            Aver.AreEqual(12345, svar[0].Value.AsInt());
            Aver.AreEqual("Set Dima to 12345", svar[0].Description);

            Aver.AreEqual(78901, svar[1].Value.AsInt());
            Aver.AreEqual("Set Dima to 78901", svar[1].Description);
        }
Esempio n. 16
0
        public void AnalyzeUniqueness(int CNT)
        {
            var fnames  = new List <string>();
            var lnames  = new List <string>();
            var flnames = new List <string>();
            var cities  = new List <string>();

            for (var i = 0; i < CNT; i++)
            {
                var fn = NaturalTextGenerator.GenerateFirstName();
                fnames.Add(fn);
                var ln = NaturalTextGenerator.GenerateLastName();
                lnames.Add(ln);
                flnames.Add(fn + " " + ln);
                cities.Add(NaturalTextGenerator.GenerateCityName());
            }
            Console.WriteLine("Generated {0:n0} times", CNT);
            Console.WriteLine("----------------------------");
            var dfn = fnames.Distinct().Count();
            var pfn = 100d * (dfn / (double)CNT);

            Console.WriteLine(" First names {0:n0} unique {1:n3}%", dfn, pfn);

            var dln = lnames.Distinct().Count();
            var pln = 100d * (dln / (double)CNT);

            Console.WriteLine(" Last names {0:n0} unique {1:n3}%", dln, pln);

            var dfln = flnames.Distinct().Count();
            var pfln = 100d * (dfln / (double)CNT);

            Console.WriteLine(" First+Last names {0:n0} unique {1:n3}%", dfln, pfln);
            Aver.IsTrue(pfln > 85d);//85% uniqueness

            var dct = cities.Distinct().Count();
            var pct = 100d * (dct / (double)CNT);

            Console.WriteLine(" Cities {0:n0} unique {1:n3}%", dct, pct);
            Console.WriteLine();
        }
Esempio n. 17
0
        public void BoolField()
        {
            var row1 = new Doctor
            {
                First_Name   = "Oleg",
                Last_Name    = "Ivanov",
                DOB          = new DateTime(1980, 8, 29),
                SSN          = "172486",
                NPI          = "5478",
                Amount       = 10.23M,
                Is_Certified = true
            };
            var row2 = new Doctor
            {
                First_Name   = "Oleg",
                Last_Name    = "Petrovich",
                DOB          = new DateTime(1970, 3, 8),
                SSN          = "293488",
                NPI          = "5278",
                Amount       = 10.23M,
                Is_Certified = false
            };

            using (var ds = makeDataStore())
            {
                ds.Insert(row1);
                ds.Insert(row2);

                ds.QueryResolver.ScriptAssembly = ASSEMBLY;
                var qry = new Query <Doctor>("CRUD.Doctor.List")
                {
                    new Query.Param("pSSN", "%")
                };
                var result = ds.LoadEnumerable(qry).OrderBy(p => p.COUNTER).ToArray();

                Aver.AreEqual(2, result.Length);
                Aver.IsTrue(result[0].Is_Certified);
                Aver.IsFalse(result[1].Is_Certified);
            }
        }
Esempio n. 18
0
        public void Parallel_OneGdid()
        {
            var set = new HashSet <GDID>();

            var sut = new LocalGdidGenerator(NOPApplication.Instance);

            const int CNT = 1_250_000;

            Parallel.For(0, CNT, new ParallelOptions(), () => new HashSet <GDID>(), (i, _, ls) =>
            {
                var got = sut.GenerateOneGdid("a", "a");
                Aver.IsTrue(ls.Add(got));
                return(ls);
            }, ls =>
            {
                lock (set)
                {
                    ls.ForEach(e => Aver.IsTrue(set.Add(e)));
                }
            });

            Aver.AreEqual(CNT, set.Count);

            sut = new LocalGdidGenerator(NOPApplication.Instance);

            Parallel.For(0, CNT, new ParallelOptions(), () => new HashSet <GDID>(), (i, _, ls) =>
            {
                var got = sut.GenerateOneGdid("a", "a");
                Aver.IsTrue(ls.Add(got));
                return(ls);
            }, ls =>
            {
                lock (set)
                {
                    ls.ForEach(e => Aver.IsTrue(set.Add(e)));
                }
            });

            Aver.AreEqual(CNT * 2, set.Count);
        }
Esempio n. 19
0
        public void VoidSuccessedPayoutTest()
        {
            var ps = PayPalSys;

            var amount = new Amount("USD", 1.1m);
            var from   = new Account("SYSTEM", 111, 222);
            var to     = new Account("USER", 111, 222);

            object id = null;

            using (var session = ps.StartSession())
            {
                session.StoreAccountData(new ActualAccountData(from)
                {
                    Identity   = from.Identity,
                    IdentityID = from.IdentityID,
                    AccountID  = from.AccountID
                });
                session.StoreAccountData(new ActualAccountData(to)
                {
                    Identity   = from.Identity,
                    IdentityID = from.IdentityID,
                    AccountID  = PayPalHost.PaypalValidAccount
                });
                var tran = session.Transfer(from, to, amount);
                id = tran.ID;
            }

            var transaction = PayPalHost.FetchTransaction(id);

            Aver.IsNotNull(transaction);

            refreshTransaction(transaction);
            Aver.IsTrue(TransactionStatus.Pending == transaction.Status);

            refreshTransaction(transaction);
            Aver.IsTrue(TransactionStatus.Success == transaction.Status);

            transaction.Void();
        }
Esempio n. 20
0
        public void Key_Violation()
        {
            var data1 = new MyData {
                ID = 1, Data = "My data string 1"
            };
            var data2 = new MyData {
                ID = 2, Data = "My data string 2"
            };
            var data1again = new MyData {
                ID = 1, Data = "My data string 1 again"
            };

            m_Store.Insert(data1);
            m_Store.Insert(data2);

            try
            {
                m_Store.Insert(data1again);
                Aver.Fail("No key violation");
            }
            catch (Exception error)
            {
                var dae = error as MongoDbDataAccessException;
                Aver.IsNotNull(dae);
                Aver.IsNotNull(dae.KeyViolation);
                Aver.IsTrue(dae.KeyViolationKind == KeyViolationKind.Primary);
                Console.WriteLine(error.ToMessageWithType());

                Console.WriteLine("Key violation is: " + dae.KeyViolation);
            }

            var rowset = m_Store.LoadOneRowset(new Query("CRUD.LoadAllMyData", typeof(MyData)));

            Aver.IsNotNull(rowset);

            Aver.AreEqual(2, rowset.Count);

            Aver.AreObjectsEqual(1, rowset[0][0].AsInt());
            Aver.AreObjectsEqual(2, rowset[1][0].AsInt());
        }
Esempio n. 21
0
        public void GoogleDrive_CreateDirCreateFileDeleteDir()
        {
            using (CreateApplication())
            {
                var fs = GetFileSystem();

                using (var session = StartSession(fs))
                {
                    var dir = session[ROOT] as FileSystemDirectory;
                    Aver.AreEqual(1, session.Items.Count());//checking item registation via .ctor/.dctor
                    var dir2 = dir[DIR_1] as FileSystemDirectory;
                    Aver.IsNull(dir2);
                    Aver.AreEqual(1, session.Items.Count()); //checking item registation via .ctor/.dctor
                    dir2 = dir.CreateDirectory(DIR_1);
                    Aver.AreEqual(2, session.Items.Count()); //checking item registation via .ctor/.dctor
                    Aver.IsTrue(session.Client.FolderExists(dir2.Path));

                    Aver.AreEqual(DIR_1, dir2.Name);

                    var f = dir2.CreateFile(FILE1, 237);
                    Aver.AreEqual(3, session.Items.Count());//checking item registation via .ctor/.dctor
                    Aver.IsTrue(session.Client.FileExists(f.Path));

                    Aver.AreEqual(237UL, dir2.Size);

                    Aver.IsTrue(dir.SubDirectoryNames.Contains(DIR_1));

                    Aver.IsTrue(dir2.FileNames.Contains(FILE1));

                    dir2.Delete();
                    Aver.AreEqual(2, session.Items.Count());//checking item registation via .ctor/.dctor
                    Aver.IsFalse(session.Client.FolderExists(dir2.Path));
                    Aver.IsFalse(session.Client.FileExists(f.Path));
                    Aver.AreEqual(1, fs.Sessions.Count());   //checking item registation via .ctor/.dctor
                    session.Dispose();
                    Aver.AreEqual(0, fs.Sessions.Count());   //checking item registation via .ctor/.dctor
                    Aver.AreEqual(0, session.Items.Count()); //checking item registation via .ctor/.dctor
                }
            }
        }
Esempio n. 22
0
        public void SaveToCompactStringThenReadBack()
        {
            var conf = new LaconicConfiguration();

            conf.Create("very-root");
            conf.Root.AddChildNode("childSection1").AddAttributeNode("name", "Alex");
            conf.Root.AddChildNode("child2").AddAttributeNode("name", "Boris");
            conf.Root["child2"].Value = "Muxa";

            var child3 = conf.Root.AddChildNode("child3");

            child3.AddAttributeNode("atr with space", 1);
            child3.AddAttributeNode("atr2", "val with space");
            child3.AddAttributeNode("atr{3}", null);
            child3.AddAttributeNode("atr=4", null);

            child3.AddAttributeNode("atr5", "this goes on \n\r new\\next line");

            child3.AddChildNode("child3.1");
            child3.AddChildNode("child3.2").AddChildNode("child3.2.1");
            child3.AddChildNode("child3.3");

            var txt = conf.SaveToString(LaconfigWritingOptions.Compact);

            Console.WriteLine(txt);
            var conf2 = LaconicConfiguration.CreateFromString(txt);

            Aver.IsTrue(conf2.Root["childSection1"].Exists);
            Aver.IsTrue(conf2.Root["child3"].AttrByName("atr with space").Exists);
            Aver.IsTrue(conf2.Root.Navigate("childSection1/$name").Exists);
            Aver.IsTrue(conf2.Root.Navigate("child2/$name").Exists);
            Aver.IsTrue(conf2.Root.Navigate("child3/$atr{3}").Exists);
            Aver.IsTrue(conf2.Root.Navigate("child3/child3.2/child3.2.1").Exists);

            Aver.AreEqual("Muxa", conf2.Root.Navigate("child2").Value);
            Aver.AreEqual("1", conf2.Root.Navigate("child3/$atr with space").Value);
            Aver.AreEqual("val with space", conf2.Root.Navigate("child3/$atr2").Value);
            Aver.IsTrue(conf2.Root.Navigate("child3/$atr=4").Value.IsNullOrWhiteSpace());
        }
Esempio n. 23
0
        public void TestGeoStrategy_Proximity()
        {
            using (var app = new AzosApplication(null, BASE_CONF))
            {
                //Get the binder which will make and bind strategy instances for the requested contract and context data
                var binder = app.ModuleRoot.Get <IStrategyBinder>();

                //The first case runs in the context of Cleveland, OHIO customers
                var ctx = new GeoProximityContext {
                    Location = new LatLng("41.500136,-81.7005492", "Cleveland")
                };
                var got = binder.Bind <IGeoStrat, IGeoStratContext>(ctx);

                //We get NY strategy implementation, because NY is closer to Cleveland than others (in California)
                Aver.IsTrue(got is NewYorkStrat);
                Aver.AreEqual("New York customers in Cleveland", got.RunStrategyWork());

                //Now try Washington DC
                ctx.Location = new LatLng("38.9079407,-77.0355777", "Washington");
                got          = binder.Bind <IGeoStrat, IGeoStratContext>(ctx);
                //Still get NY, because it is closer
                Aver.IsTrue(got is NewYorkStrat);
                Aver.AreEqual("New York customers in Washington", got.RunStrategyWork());

                //Now Sacramento which is closer to SF than LA
                ctx.Location = new LatLng("38.5755851,-121.4925168", "Sacramento");
                got          = binder.Bind <IGeoStrat, IGeoStratContext>(ctx);
                //And we do get San Francisco
                Aver.IsTrue(got is SanFranciscoStrat);
                Aver.AreEqual("San Francisco California customers in Sacramento", got.RunStrategyWork());

                //Now Sand Diego
                ctx.Location = new LatLng("32.729915,-117.1577203", "San Diego");
                got          = binder.Bind <IGeoStrat, IGeoStratContext>(ctx);
                //Which is closer to LA
                Aver.IsTrue(got is LosAngelesStrat);
                Aver.AreEqual("LA California customers in San Diego", got.RunStrategyWork());
            }
        }
Esempio n. 24
0
        public void ConfigAttributeApplyToExtendedClassWithRootOverride()
        {
            var conf = Azos.Conf.XMLConfiguration.CreateFromXML(xml);

            var cl = new MyClassExtended2();

            ConfigAttribute.Apply(cl, conf.Root);

            Aver.AreEqual("protected", cl.getProtectedName());
            Aver.AreEqual("public", cl.m_PublicName);

            Aver.AreEqual(199, cl.Age);
            Aver.IsTrue(MyEnum.C == cl.MyEnumField);

            Aver.AreEqual(1, cl.When.Month);
            Aver.AreEqual(1, cl.When.Day);
            Aver.AreEqual(1944, cl.When.Year);

            Aver.AreEqual(false, cl.Fuzzy.Value);

            Aver.AreEqual(false, cl.Jazzy.HasValue);
        }
Esempio n. 25
0
        public void Recursive4StackCleanup_Parallel()
        {
            var conf = Azos.Conf.LaconicConfiguration.CreateFromString(src1);

            System.Threading.Tasks.Parallel.For(0, 100000,
                                                (_) =>
            {
                var attr = conf.Root["MyClass"]["data"]["extra"].AttrByName("cycle");

                try
                {
                    var v2 = attr.Value;//exception
                }
                catch (Exception error)
                {
                    Aver.IsTrue(error.Message.Contains("recursive vars"));
                }

                //after exception, stack should cleanup and work again as expected
                Aver.AreEqual("val1", conf.Root["vars"]["var1"].Value);
            });
        }
Esempio n. 26
0
        public void EstimateShippingCost_USPS_NoTemplate()
        {
            using (var session = ShippingSystem.StartSession())
            {
                var usps = session.GetShippingCarriers(null).First(c => c.Type == CarrierType.USPS);

                var method      = usps.Services["USPS_PRIORITY"];
                var shipment    = getDefaultShipment(usps, method);
                var estShipment = session.EstimateShippingCost(null, shipment);

                Aver.IsNotNull(estShipment.Cost);
                Aver.AreEqual(estShipment.Cost.Value.CurrencyISO, "USD");
                Aver.IsTrue(estShipment.Cost.Value.Value > 0);

                method      = usps.Services["USPS_PRIORITY_EXPRESS"];
                shipment    = getDefaultShipment(usps, method);
                estShipment = session.EstimateShippingCost(null, shipment);

                Aver.IsNotNull(estShipment.Cost);
                Aver.AreEqual(estShipment.Cost.Value.CurrencyISO, "USD");
                Aver.IsTrue(estShipment.Cost.Value.Value > 0);

                method      = usps.Services["USPS_PARCEL_SELECT"];
                shipment    = getDefaultShipment(usps, method);
                estShipment = session.EstimateShippingCost(null, shipment);

                Aver.IsNotNull(estShipment.Cost);
                Aver.AreEqual(estShipment.Cost.Value.CurrencyISO, "USD");
                Aver.IsTrue(estShipment.Cost.Value.Value > 0);

                method      = usps.Services["USPS_FIRST"];
                shipment    = getDefaultShipment(usps, method);
                estShipment = session.EstimateShippingCost(null, shipment);

                Aver.IsNotNull(estShipment.Cost);
                Aver.AreEqual(estShipment.Cost.Value.CurrencyISO, "USD");
                Aver.IsTrue(estShipment.Cost.Value.Value > 0);
            }
        }
Esempio n. 27
0
        public async Task ClientAccessCodeToken_2_DifferentType_Unsafe_Validate()
        {
            var token = m_Ring.GenerateNew <ClientAccessCodeToken>();

            token.IssuedBy            = "a1";
            token.ClientId            = "client123";
            token.RedirectURI         = "http://disney.com";
            token.State               = "state789";
            token.SubjectSysAuthToken = new SysAuthToken("test", "test content").ToString();

            var issued = await m_Ring.PutAsync(token);

            Aver.IsNotNull(issued);

            "Issued {0} of {1} chars: {2}".SeeArgs(token.GetType().Name, issued.Length, issued);

            var got = await m_Ring.GetAsync <ClientRefreshCodeToken>(issued);

            Aver.IsNull(got);                                                   //because token did not pass validation as it was gotten into a different type

            got = await m_Ring.GetUnsafeAsync <ClientRefreshCodeToken>(issued); //<-----UNSAFE

            Aver.IsNotNull(got);                                                //however unsafe version did return the token

            got.See();

            Aver.AreEqual(token.ClientId, got.ClientId);
            Aver.AreEqual(token.IssuedBy, got.IssuedBy);
            //Aver.AreEqual(token.RedirectURI, got.RedirectURI);
            //Aver.AreEqual(token.State, got.State);
            Aver.AreEqual(token.SubjectSysAuthToken, got.SubjectSysAuthToken);

            var ve = got.Validate(RingToken.PROTECTED_MSG_TARGET);

            Aver.IsNotNull(ve);
            Aver.IsTrue(ve is FieldValidationException);
            "Expected and got: {0}".See(ve.ToMessageWithType());
            Aver.IsTrue(ve.Message.Contains("Type Mismatch"));
        }
Esempio n. 28
0
        public void CaseInsensitiv()
        {
            var reg = new Registry <NamedClazz>();//INSENSITIVE

            Aver.IsTrue(reg.Register(new NamedClazz("Apple", 1)));
            Aver.IsTrue(reg.Register(new NamedClazz("Banana", 2)));
            Aver.IsFalse(reg.Register(new NamedClazz("APPLE", 3)));

            Aver.AreEqual(2, reg.Count);

            Aver.AreEqual(1, reg["Apple"].Data);
            Aver.AreEqual(2, reg["Banana"].Data);
            Aver.AreEqual(1, reg["APPLE"].Data);

            Aver.IsFalse(reg.Unregister(new NamedClazz("I was never added before", 1)));
            Aver.AreEqual(2, reg.Count);

            Aver.IsTrue(reg.Unregister(new NamedClazz("ApPle", 1)));
            Aver.AreEqual(1, reg.Count);
            Aver.AreObjectsEqual(null, reg["Apple"]);
            Aver.AreEqual(2, reg["Banana"].Data);
        }
Esempio n. 29
0
        public void Registry()
        {
            var reg = new Registry <NamedClazz>();

            Aver.IsTrue(reg.Register(new NamedClazz("Apple", 1)));
            Aver.IsTrue(reg.Register(new NamedClazz("Banana", 2)));
            Aver.IsFalse(reg.Register(new NamedClazz("Apple", 3)));

            Aver.AreEqual(2, reg.Count);

            Aver.AreEqual(1, reg["Apple"].Data);
            Aver.AreEqual(2, reg["Banana"].Data);
            Aver.AreObjectsEqual(null, reg["Grapes"]);

            Aver.IsFalse(reg.Unregister(new NamedClazz("I was never added before", 1)));
            Aver.AreEqual(2, reg.Count);

            Aver.IsTrue(reg.Unregister(new NamedClazz("Apple", 1)));
            Aver.AreEqual(1, reg.Count);
            Aver.AreObjectsEqual(null, reg["Apple"]);
            Aver.AreEqual(2, reg["Banana"].Data);
        }
Esempio n. 30
0
        public void TwoGDIDLongWithISOKey_CreateEquate_1()
        {
            var k1 = new TwoGDIDLongWithISOKey(new GDID(10, 20), new GDID(10, 30), 123, "eng");
            var k2 = new TwoGDIDLongWithISOKey(new GDID(10, 20), new GDID(10, 30), 123, "eNG");

            Aver.AreEqual("ENG", k1.ISOCode);
            Aver.AreEqual("ENG", k2.ISOCode);

            Aver.AreEqual(123, k1.PAYLOAD);
            Aver.AreEqual(123, k2.PAYLOAD);

            Aver.AreEqual(k1, k2);

            Aver.IsTrue(k1.Equals(k2));
            var o = k2;

            Aver.IsTrue(k1.Equals(o));

            Aver.AreEqual(k1.GetHashCode(), k2.GetHashCode());
            Aver.AreEqual(k1.GetDistributedStableHash(), k2.GetDistributedStableHash());
            Console.WriteLine(k1.ToString());
        }