Esempio n. 1
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. 2
0
        public void GDID_EncodeDecode_3()
        {
            var src = new ELink(new GDID(567333, 3, 167898777), new byte[] { 1, 2, 3, 4, 5 });

            "ELink with GDID and 5 bytes metadata: {0}".SeeArgs(src.Link);
            var lnk = new ELink(src.Link);

            var gdid = lnk.GDID;

            Aver.AreEqual(567333ul, gdid.Era);
            Aver.AreEqual(3, gdid.Authority);
            Aver.AreEqual(167898777ul, gdid.Counter);
            Aver.IsNotNull(lnk.Metadata);
            Aver.AreEqual(5, lnk.Metadata.Length);

            Aver.AreEqual(1, lnk.Metadata[0]);
            Aver.AreEqual(2, lnk.Metadata[1]);
            Aver.AreEqual(3, lnk.Metadata[2]);
            Aver.AreEqual(4, lnk.Metadata[3]);
            Aver.AreEqual(5, lnk.Metadata[4]);
        }
Esempio n. 3
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. 4
0
File: JSON.cs Progetto: zhabis/nfx
        public void StringMap_Pretty()
        {
            var map = new StringMap
            {
                { "p1", "v1" },
                { "p2", "v2" },
                { "Age", "149" }
            };

            var json = map.ToJSON(JSONWritingOptions.PrettyPrint);

            Console.WriteLine(json);

            dynamic read = json.JSONToDynamic();

            Aver.IsNotNull(read);

            Aver.AreEqual("v1", read.p1);
            Aver.AreEqual("v2", read.p2);
            Aver.AreEqual("149", read.Age);
        }
Esempio n. 5
0
File: JSON.cs Progetto: zhabis/nfx
        public void NLSMap_SerializeOnlyOneNoneExisting()
        {
            var content = "{eng: {n: 'Cucumber',d: 'It is green'}, deu: {n: 'Gurke', d: 'Es ist grün'}}";

            var nls = new NLSMap(content);


            var options = new JSONWritingOptions {
                NLSMapLanguageISO = "rus", Purpose = JSONSerializationPurpose.UIFeed
            };
            var json = nls.ToJSON(options);

            Console.WriteLine(json);

            dynamic read = json.JSONToDynamic();

            Aver.IsNotNull(read);

            Aver.AreEqual("Cucumber", read.n);
            Aver.AreEqual("It is green", read.d);
        }
Esempio n. 6
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. 7
0
        public void PopulateAndUpsertNonExisting()
        {
            var tbl = new Table(Schema.GetForTypedDoc(typeof(Person)));

            for (var i = 0; i < 1000; i++)
            {
                tbl.Insert(new Person {
                    ID           = "POP{0}".Args(i),
                    FirstName    = "Oleg",
                    LastName     = "Popov-{0}".Args(i),
                    DOB          = new DateTime(1953, 12, 10),
                    YearsInSpace = 12
                });
            }

            var update = new Person {
                ID           = "GOODMAN17",
                FirstName    = "John",
                LastName     = "Jeffer",
                DOB          = new DateTime(1952, 12, 10),
                YearsInSpace = 14
            };

            var res = tbl.Upsert(update);//<-------------!!!!!!

            Aver.IsFalse(res.Updated);

            Aver.AreEqual(1001, tbl.Count);

            var match = tbl.FindByKey("POP17") as Person;

            Aver.IsNotNull(match);
            Aver.AreEqual("Oleg", match.FirstName);
            Aver.AreEqual("Popov-17", match.LastName);

            match = tbl.FindByKey("GOODMAN17") as Person;
            Aver.IsNotNull(match);
            Aver.AreEqual("John", match.FirstName);
            Aver.AreEqual("Jeffer", match.LastName);
        }
Esempio n. 8
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. 9
0
        public void InsertDelete()
        {
            for (var i = 0; i < 100; i++)
            {
                var row = new MyPerzon
                {
                    GDID = new GDID(1, 1, (ulong)i),
                    Name = "Jeka Koshmar",
                    Age  = i
                };

                m_Store.Insert(row);
            }

            var qryBetween1015 = new Query("CRUD.LoadPerzonsInAgeSpan", typeof(MyPerzon))
            {
                new Query.Param("fromAge", 10),
                new Query.Param("toAge", 15)
            };

            var rs = m_Store.LoadOneRowset(qryBetween1015);

            Aver.IsNotNull(rs);

            Aver.AreEqual(4, rs.Count);

            Aver.AreObjectsEqual(14, rs.First()["Age"]);
            Aver.AreObjectsEqual(11, rs.Last()["Age"]);


            Aver.AreEqual(1, m_Store.Delete(rs.First()));//DELETE!!!!

            rs = m_Store.LoadOneRowset(qryBetween1015);
            Aver.IsNotNull(rs);

            Aver.AreEqual(3, rs.Count);

            Aver.AreObjectsEqual(13, rs.First()["Age"]);
            Aver.AreObjectsEqual(11, rs.Last()["Age"]);
        }
Esempio n. 10
0
        public void T3100_Dictionary_TYPE_Int_Field()
        {
            using (var ms = new MemoryStream())
            {
                var s  = new SlimSerializer();
                var d1 = new dictTypeClass
                {
                    Data   = new Dictionary <Type, int>(0xff),
                    ADummy = new List <Type>(0xff)
                };

                d1.Data.Add(typeof(List <S3>), 1);
                d1.Data.Add(typeof(S3[]), 20);
                d1.Data.Add(typeof(Tuple <string, S3>), 90);

                d1.ADummy.Add(typeof(List <S3>));
                d1.ADummy.Add(typeof(S3[]));
                d1.ADummy.Add(typeof(Tuple <string, S3>));

                s.Serialize(ms, d1);

                ms.Position = 0;

                var d2 = s.Deserialize(ms) as dictTypeClass;

                Aver.IsNotNull(d2);
                Aver.IsNotNull(d2.Data);
                Aver.IsNotNull(d2.ADummy);

                Aver.AreEqual(3, d2.Data.Count);
                Aver.AreEqual(1, d2.Data[typeof(List <S3>)]);
                Aver.AreEqual(20, d2.Data[typeof(S3[])]);
                Aver.AreEqual(90, d2.Data[typeof(Tuple <string, S3>)]);

                Aver.AreEqual(3, d2.ADummy.Count);
                Aver.AreObjectsEqual(typeof(List <S3>), d2.ADummy[0]);
                Aver.AreObjectsEqual(typeof(S3[]), d2.ADummy[1]);
                Aver.AreObjectsEqual(typeof(Tuple <string, S3>), d2.ADummy[2]);
            }
        }
        public void Insert_FindOne_Parallel(int maxConnections)
        {
            const int CNT = 75000;

            using (var client = new MongoClient(NOPApplication.Instance, "My Test"))
            {
                var server = client.DefaultLocalServer;
                server.MaxConnections = maxConnections;
                var db = server["db1"];
                db["t1"].Drop();
                var t1 = db["t1"];


                var sw = Stopwatch.StartNew();
                Parallel.For(0, CNT, (i) =>
                {
                    Aver.AreEqual(1, db["t1"].Insert(new BSONDocument().Set(new BSONInt32Element("_id", i))
                                                     .Set(new BSONStringElement("val", "num-" + i.ToString()))
                                                     ).TotalDocumentsAffected);
                });

                var e1 = sw.ElapsedMilliseconds;

                Aver.AreEqual(CNT, t1.Count());

                Console.WriteLine("Insert Parallel: {0:n0} times in {1:n0} ms at {2:n0} ops/sec   MAX CONNECTIONS={3} ".Args(CNT, e1, CNT / (e1 / 1000d), maxConnections));

                sw.Restart();
                Parallel.For(0, CNT, (i) =>
                {
                    var got = db["t1"].FindOne(Query.ID_EQ_Int32(i));
                    Aver.IsNotNull(got);
                    Aver.AreEqual("num-" + i.ToString(), got["val"].AsString());
                });

                var e2 = sw.ElapsedMilliseconds;

                Console.WriteLine("FindOne Parallel: {0:n0} times in {1:n0} ms at {2:n0} ops/sec   MAX CONNECTIONS={3} ".Args(CNT, e2, CNT / (e2 / 1000d), maxConnections));
            }
        }
Esempio n. 12
0
        public void Test_WithVariousNullableStructsDoc_InnerList()
        {
            var d1 = new WithVariousNullableStructsDoc
            {
                InnerList = new List <WithVariousNullableStructsDoc>
                {
                    new WithVariousNullableStructsDoc {
                        Atom = Atom.Encode("Baba"), Inner = new WithVariousNullableStructsDoc {
                            Atom = Atom.Encode("Yaga")
                        }
                    },
                    null,
                    null,
                    new WithVariousNullableStructsDoc {
                        Atom = Atom.Encode("Kulibin")
                    }
                }
            };
            var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap);

            Console.WriteLine(json);
            var map = json.JsonToDataObject() as JsonDataMap;

            var d2 = new WithVariousNullableStructsDoc();

            JsonReader.ToDoc(d2, map);

            Aver.IsNotNull(d2.InnerList);
            Aver.AreEqual(4, d2.InnerList.Count);
            Aver.AreEqual("Baba", d2.InnerList[0].Atom.Value.Value);
            Aver.IsNotNull(d2.InnerList[0].Inner);
            Aver.AreEqual("Yaga", d2.InnerList[0].Inner.Atom.Value.Value);

            Aver.IsNull(d2.InnerList[1]);
            Aver.IsNull(d2.InnerList[2]);

            Aver.IsNotNull(d2.InnerList[3]);
            Aver.AreEqual("Kulibin", d2.InnerList[3].Atom.Value.Value);
        }
Esempio n. 13
0
        public void InsertAndLoad()
        {
            var row = new MyPerzon
            {
                GDID = new GDID(1, 1, 100),
                Name = "Jeka Koshmar",
                Age  = 89
            };

            store.Insert(row);

            var row2 = store.LoadOneRow(new Query("CRUD.LoadPerzon", typeof(MyPerzon))
            {
                new Query.Param("id", row.GDID)
            }) as MyPerzon;

            Aver.IsNotNull(row2);

            Aver.AreEqual(row.GDID, row2.GDID);
            Aver.AreEqual(row.Name, row2.Name);
            Aver.AreEqual(row.Age, row2.Age);
        }
Esempio n. 14
0
        public void Test02_Batch()
        {
            var doc1 = new Doc1 {
                S1 = "shr", S2 = "01", I1 = 15
            };
            var got = doc1.Validate(new ValidState(null, ValidErrorMode.Batch));

            got.See();

            Aver.IsTrue(got.IsAssigned);
            Aver.IsTrue(got.HasErrors);
            Aver.IsFalse(got.NoErrors);
            Aver.AreEqual(1, got.ErrorCount);
            Aver.IsTrue(got.ShouldContinue);
            Aver.IsFalse(got.ShouldStop);
            Aver.IsNotNull(got.Error);

            var fve = got.Error as FieldValidationException;

            Aver.IsNotNull(fve);
            Aver.IsTrue(fve.Message.Contains("length of 5"));
        }
Esempio n. 15
0
        public void Doc_LocalDates_fromLocal()
        {
            var json = "{date: '1985-12-31T23:59:53-01:00', ndate: null}";
            var doc  = JsonReader.ToDoc <DateDoc>(json, options: new JsonReader.DocReadOptions(JsonReader.DocReadOptions.By.CodeName, null, localDates: true));

            Aver.IsNotNull(doc);
            doc.Date.See("Kind: " + doc.Date.Kind);

            Aver.IsNull(doc.NDate);

            var date = new DateTime(1985, 12, 31, 23, 59, 53, DateTimeKind.Utc).AddHours(+1);//UTC equivalent of json

            date = TimeZoneInfo.ConvertTimeFromUtc(date, TimeZoneInfo.Local);

            Aver.IsTrue(DateTimeKind.Local == doc.Date.Kind);//asked for local date and got local
            Aver.AreEqual(date.Year, doc.Date.Year);
            Aver.AreEqual(date.Month, doc.Date.Month);
            Aver.AreEqual(date.Day, doc.Date.Day);
            Aver.AreEqual(date.Hour, doc.Date.Hour);
            Aver.AreEqual(date.Minute, doc.Date.Minute);
            Aver.AreEqual(date.Second, doc.Date.Second);
        }
Esempio n. 16
0
        public void TrailingComma_Object_2()
        {
            var json = @"{ a: [1,-2,], b: [{f: true},{f: false},{f: null},]    , /* comment: comment */  }";
            var src  = new StringSource(json);
            var got  = JazonParser.Parse(src, true) as JsonDataMap;

            Aver.IsNotNull(got);
            var a = got["a"] as JsonDataArray;

            Aver.IsNotNull(a);
            Aver.AreEqual(2, a.Count);
            Aver.AreObjectsEqual(1, a[0]);
            Aver.AreObjectsEqual(-2, a[1]);

            var b = got["b"] as JsonDataArray;

            Aver.IsNotNull(b);
            Aver.AreEqual(3, b.Count);
            Aver.AreObjectsEqual(true, (b[0] as JsonDataMap)["f"]);
            Aver.AreObjectsEqual(false, (b[1] as JsonDataMap)["f"]);
            Aver.AreObjectsEqual(null, (b[2] as JsonDataMap)["f"]);
        }
Esempio n. 17
0
        public void PutByteArray_GetDirectUnsafe()
        {
            using (var pile = new DefaultPile(NOPApplication.Instance))
            {
                pile.Start();

                var ptr = pile.Put(new byte[] { 1, 6, 9 });
                var got = pile.GetDirectMemoryBufferUnsafe(ptr, out var sflag);
                Aver.IsNotNull(got.Array);

                for (var i = 0; i < 8; i++)
                {
                    "{0} {1:x2} {2}".SeeArgs(got.Offset, got.Array[got.Offset + i], (char)got.Array[got.Offset + i]);
                }

                Aver.AreEqual(3, got.Count);

                Aver.AreEqual(1, got.Array[got.Offset + 0]);
                Aver.AreEqual(6, got.Array[got.Offset + 1]);
                Aver.AreEqual(9, got.Array[got.Offset + 2]);
            }
        }
Esempio n. 18
0
        public void Test_WithVariousNullableStructsDoc_InnerArray()
        {
            var d1 = new WithVariousNullableStructsDoc
            {
                InnerArray = new WithVariousNullableStructsDoc[]
                {
                    new WithVariousNullableStructsDoc {
                        Atom = Atom.Encode("Baba"), Inner = new WithVariousNullableStructsDoc {
                            Atom = Atom.Encode("Yaga")
                        }
                    },
                    null,
                    null,
                    new WithVariousNullableStructsDoc {
                        Atom = Atom.Encode("Kulibin")
                    }
                }
            };
            var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap);

            json.See();
            var map = json.JsonToDataObject() as JsonDataMap;

            var d2 = new WithVariousNullableStructsDoc();

            JsonReader.ToDoc(d2, map);

            Aver.IsNotNull(d2.InnerArray);
            Aver.AreEqual(4, d2.InnerArray.Length);
            Aver.AreEqual("Baba", d2.InnerArray[0].Atom.Value.Value);
            Aver.IsNotNull(d2.InnerArray[0].Inner);
            Aver.AreEqual("Yaga", d2.InnerArray[0].Inner.Atom.Value.Value);

            Aver.IsNull(d2.InnerArray[1]);
            Aver.IsNull(d2.InnerArray[2]);

            Aver.IsNotNull(d2.InnerArray[3]);
            Aver.AreEqual("Kulibin", d2.InnerArray[3].Atom.Value.Value);
        }
        public void DefaultMappings_htm_multiple_exts()
        {
            using (var app = new AzosApplication(null, null))
            {
                var maps = app.GetContentTypeMappings();
                Aver.IsNotNull(maps);

                var map1 = maps.MapFileExtension("htm");
                Aver.IsNotNull(map1);
                Aver.IsFalse(map1.IsGeneric);
                Aver.IsFalse(map1.IsBinary);
                Aver.IsTrue(map1.IsText);
                Aver.IsFalse(map1.IsImage);
                Aver.AreEqual("text/html", map1.ContentType);
                Aver.IsNotNull(map1.Metadata);
                Aver.IsFalse(map1.Metadata.Exists);

                var map2 = maps.MapFileExtension("html");
                Aver.IsNotNull(map2);
                Aver.AreSameRef(map1, map2);
            }
        }
Esempio n. 20
0
        public void Frame_02()
        {
            var obj = new Frame()
            {
                Payload = new DataB {
                    Common = "Common2", B = "B1"
                }
            };
            var json = obj.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap);

            json.See("JSON: ");

            var got = JsonReader.ToDoc <Frame>(json);

            got.See("GOT: ");

            var data = got.Payload as DataB;

            Aver.IsNotNull(data);
            Aver.AreEqual("Common2", data.Common);
            Aver.AreEqual("B1", data.B);
        }
Esempio n. 21
0
        public async Task BuildComplexRockets()
        {
            /* Arrange */
            IEnumerable <RocketOrder> got;

            /* Act */
            got = MockRockets.GetComplexOrders();
            //got.See();

            /* Assert */
            Aver.IsNotNull(got);
            Aver.IsTrue(got.Any());

            var builtRockets = RocketBuilder.Build(got);

            Aver.IsTrue(await builtRockets.AnyAsync());

            await foreach (var rocket in builtRockets)
            {
                rocket.See();
            }
        }
Esempio n. 22
0
        public void InsertAndLoadRowIntoDynamicRow()
        {
            var row = new MyPerzon
            {
                GDID = new GDID(2, 2, 200),
                Name = "Zalup Marsoedov",
                Age  = 89
            };

            m_Store.Insert(row);

            var row2 = m_Store.LoadDoc(new Query <DynamicDoc>("CRUD.LoadPerzon")
            {
                new Query.Param("id", row.GDID)
            });

            Aver.IsNotNull(row2);

            Aver.AreEqual(row.GDID, row2["_id"].AsGDID());
            Aver.AreObjectsEqual(row.Name, row2["Name"]);
            Aver.AreObjectsEqual(row.Age, row2["Age"]);
        }
Esempio n. 23
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. 24
0
        public void InsertAndLoadWithProjection()
        {
            var row = new MyPerzon
            {
                GDID = new GDID(1, 1, 100),
                Name = "Jeka Koshmar",
                Age  = 89
            };

            m_Store.Insert(row);

            var row2 = m_Store.LoadOneDoc(new Query("CRUD.LoadPerzonAge", typeof(MyPerzon))
            {
                new Query.Param("id", row.GDID)
            }) as MyPerzon;

            Aver.IsNotNull(row2);

            Aver.AreEqual(GDID.Zero, row2.GDID);
            Aver.AreEqual(null, row2.Name);
            Aver.AreEqual(row.Age, row2.Age);
        }
Esempio n. 25
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. 26
0
        public void TestHeavyBenchmark(int count)
        {
            using (var pile = new DefaultPile())
            {
                pile.Start();
                var ipile = pile as IPile;

                var data = HeavyProductRow.Build();
                var pp   = PilePointer.Invalid;

                var sw = Stopwatch.StartNew();
                for (var i = 0; i < count; i++)
                {
                    pp = ipile.Put(data);
                }

                var wms = sw.ElapsedMilliseconds;


                Console.WriteLine("Created {0:n0} in {1:n0} ms at {2:n0} ops/sec".Args(count, wms, count / (wms / 1000d)));
                Console.WriteLine("Occupied bytes {0:n0}".Args(pile.AllocatedMemoryBytes));

                HeavyProductRow got = null;
                sw.Restart();
                for (var i = 0; i < count; i++)
                {
                    got = ipile.Get(pp) as HeavyProductRow;
                    Aver.IsNotNull(got);

                    Aver.AreEqual(data.GDID, got.GDID);
                }
                var rms = sw.ElapsedMilliseconds;
                Console.WriteLine("Read {0:n0} in {1:n0} ms at {2:n0} ops/sec".Args(count, rms, count / (rms / 1000d)));

                Aver.AreEqual(3, got.SKUs.Length);
                Aver.AreEqual(6, got.Prices.Length);
            }
        }
Esempio n. 27
0
        public void NLS_Array()
        {
            using (var ms = new MemoryStream())
            {
                var s = new SlimSerializer();

                var dIn = new NLSMap[] {
                    new NLSMap("eng{n='name' d='description'} rus{n='имя' d='описание'}".AsLaconicConfig()),
                    new NLSMap("eng{n='color' d='of product'} rus{n='zvet' d='producta'}".AsLaconicConfig()),
                    new NLSMap("eng{n='size' d='of item'} rus{n='razmer' d='tovara'}".AsLaconicConfig())
                };


                s.Serialize(ms, dIn);
                ms.Seek(0, SeekOrigin.Begin);

                var dOut = (NLSMap[])s.Deserialize(ms);

                Aver.IsNotNull(dOut);

                Aver.AreEqual(3, dOut.Length);

                Aver.AreEqual("name", dOut[0].Get(NLSMap.GetParts.Name, "eng"));
                Aver.AreEqual("имя", dOut[0].Get(NLSMap.GetParts.Name, "rus"));
                Aver.AreEqual("description", dOut[0].Get(NLSMap.GetParts.Description, "eng"));
                Aver.AreEqual("описание", dOut[0].Get(NLSMap.GetParts.Description, "rus"));

                Aver.AreEqual("color", dOut[1].Get(NLSMap.GetParts.Name, "eng"));
                Aver.AreEqual("zvet", dOut[1].Get(NLSMap.GetParts.Name, "rus"));
                Aver.AreEqual("of product", dOut[1].Get(NLSMap.GetParts.Description, "eng"));
                Aver.AreEqual("producta", dOut[1].Get(NLSMap.GetParts.Description, "rus"));

                Aver.AreEqual("size", dOut[2].Get(NLSMap.GetParts.Name, "eng"));
                Aver.AreEqual("razmer", dOut[2].Get(NLSMap.GetParts.Name, "rus"));
                Aver.AreEqual("of item", dOut[2].Get(NLSMap.GetParts.Description, "eng"));
                Aver.AreEqual("tovara", dOut[2].Get(NLSMap.GetParts.Description, "rus"));
            }
        }
        public void Find_Comparison_DateTime()
        {
            using (var client = new MongoClient(NOPApplication.Instance, "My client"))
            {
                var db = client.DefaultLocalServer["db1"];
                db["t1"].Drop();
                var collection = db["t1"];

                foreach (var day in Enumerable.Range(1, 26))
                {
                    Aver.AreEqual(1, collection.Insert(
                                      new BSONDocument().Set(new BSONStringElement("name", "Ivan" + day.ToString()))
                                      .Set(new BSONDateTimeElement("dt", new DateTime(2017, 3, day, 0, 0, 0, DateTimeKind.Utc))))
                                  .TotalDocumentsAffected);
                }

                var query = new Query(
                    @"{
            'dt': {'$lte': '$$DT'}
          }",
                    false,
                    new TemplateArg("DT", BSONElementType.DateTime, new DateTime(2017, 3, 2, 0, 0, 0, DateTimeKind.Utc))
                    );
                var lt1 = collection.Find(query);
                lt1.MoveNext();

                Aver.IsNotNull(lt1.Current);
                Aver.AreObjectsEqual("Ivan1", lt1.Current["name"].ObjectValue);
                Aver.AreObjectsEqual(new DateTime(2017, 3, 1, 0, 0, 0, DateTimeKind.Utc), lt1.Current["dt"].ObjectValue);

                lt1.MoveNext();
                Aver.AreObjectsEqual("Ivan2", lt1.Current["name"].ObjectValue);
                Aver.AreObjectsEqual(new DateTime(2017, 3, 2, 0, 0, 0, DateTimeKind.Utc), lt1.Current["dt"].ObjectValue);

                lt1.MoveNext();
                Aver.AreEqual(true, lt1.EOF);
            }
        }
Esempio n. 29
0
        public void StringMap_WideCharsLong(int cnt)
        {
            using (var ms = new MemoryStream())
            {
                var s = new SlimSerializer();

                var original1 = new string('久', cnt);
                var original2 = "就是巴尼宝贝儿吧,俺说。有什么怪事儿或是好事儿吗? когда американские авианосцы 'Уинсон' и 'Мидуэй' приблизились 지구상의 3대 we have solved the problem";

                var dIn = new stringMapCls
                {
                    Map1 = new StringMap(false)
                    {
                        { "a", original1 },
                        { "b", original2 }
                    }
                };

                s.Serialize(ms, dIn);
                ms.Seek(0, SeekOrigin.Begin);

                var dOut = (stringMapCls)s.Deserialize(ms);

                Aver.IsNotNull(dOut);
                Aver.IsNotNull(dOut.Map1);
                Aver.IsNull(dOut.Map2);

                Aver.IsFalse(dOut.Map1.CaseSensitive);
                Aver.AreEqual(2, dOut.Map1.Count);


                Aver.AreEqual(original1, dOut.Map1["a"]);
                Aver.AreEqual(original1, dOut.Map1["A"]);

                Aver.AreEqual(original2, dOut.Map1["b"]);
                Aver.AreEqual(original2, dOut.Map1["B"]);
            }
        }
Esempio n. 30
0
        public void CreateWriteCopyReadFile()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                var fs = FS.FileSystem.Instances[NFX_S3];

                using (var session = fs.StartSession())
                {
                    var dir = session[S3_ROOT_FS] as FileSystemDirectory;

                    using (Stream s = new FileStream(FN2_FS_FULLPATH, FileMode.Create, FileAccess.Write))
                    {
                        var wri = new BinaryWriter(s);

                        wri.Write("Hello!");
                        wri.Write(true);
                        wri.Write(27.4d);
                        wri.Close();
                    }

                    //FN3 copied from FN2 and made readonly

                    Aver.IsNotNull(dir.CreateFile(FN3_FS, Path.Combine(LOCAL_ROOT_FS, FN2_FS), true));


                    using (var file = session[fs.CombinePaths(S3_ROOT_FS, FN3_FS)] as FileSystemFile)
                    {
                        var str = file.FileStream;

                        var rdr = new BinaryReader(str);

                        Aver.AreEqual("Hello!", rdr.ReadString());
                        Aver.AreEqual(true, rdr.ReadBoolean());
                        Aver.AreEqual(27.4d, rdr.ReadDouble());
                    }
                }
            }
        }