Ejemplo n.º 1
0
 public override void SetUp()
 {
     base.SetUp();
     CreateObject();
     ctx = GetContext();
     obj = GetObject();
 }
Ejemplo n.º 2
0
        public async Task PeekGeneric()
        {
            StorageQueue storage = await QueueSetup();

            var expected = new TestCustomObject {
                FooInt = 42, FooString = "The Answer"
            };
            var expected2 = new TestCustomObject {
                FooInt = 43, FooString = "The Answer 2"
            };
            var expectedList = new List <TestCustomObject> {
                expected, expected2
            };

            foreach (var item in expectedList)
            {
                await storage.SendAsync(item);
            }

            var peeked = (await storage.PeekAsync <TestCustomObject>(2)).ToList();

            Assert.AreEqual(expectedList.Count, peeked.Count);
            Assert.IsTrue(expectedList.Any(m => m.FooInt == expected.FooInt && m.FooString == expected.FooString));
            Assert.IsTrue(expectedList.Any(m => m.FooInt == expected2.FooInt && m.FooString == expected2.FooString));

            var returned = (await storage.GetManyAsync <TestCustomObject>()).ToList();

            Assert.AreEqual(expectedList.Count, returned.Count);
            Assert.IsTrue(returned.Any(m => m.FooInt == expected.FooInt && m.FooString == expected.FooString));
            Assert.IsTrue(returned.Any(m => m.FooInt == expected2.FooInt && m.FooString == expected2.FooString));
            await storage.Delete();
        }
Ejemplo n.º 3
0
        public void TestSerializeCustomStringSerializerAttribute()
        {
            var model = new ModelContainer();

            SimpleModelObject.CurrentModelContainer = model;

            var obj = new TestCustomObject();

            obj.Text = "Hello ";

            var strm       = new MemoryStream();
            var writer     = new StreamWriter(strm);
            var serializer = new ModelSerializer(StringSerializer.Create(), new LoadedTypeSerializer());

            serializer.QueueForSerialization(obj);

            serializer.Serialize(writer);
            writer.Flush();

            strm.Position = 0;

            var str = getStringFromStream(strm);


            var objects = serializer.Deserialize(new StreamReader(strm));

            Assert.AreEqual(obj, objects[0]);
        }
Ejemplo n.º 4
0
        public void FillSystemTypeTest()
        {
            var obj  = new TestCustomObject();
            var prop = typeof(TestCustomObject).GetProperties().FirstOrDefault(z => z.Name == "Id");

            EntityUtility.FillSystemType(obj, prop, "666");
            Assert.AreEqual(666, obj.Id);

            obj.Markers = 100;
            prop        = typeof(TestCustomObject).GetProperties().FirstOrDefault(z => z.Name == "Markers");
            EntityUtility.FillSystemType(obj, prop, "");
            Assert.AreEqual(null, obj.Markers);


            obj.ArrInt = new[] { 987, 543 };
            prop       = typeof(TestCustomObject).GetProperties().FirstOrDefault(z => z.Name == "ArrInt");
            EntityUtility.FillSystemType(obj, prop, "123,456,789");
            Assert.AreEqual(3, obj.ArrInt.Length);
            Assert.AreEqual(123, obj.ArrInt[0]);
            Assert.AreEqual(456, obj.ArrInt[1]);
            Assert.AreEqual(789, obj.ArrInt[2]);


            obj.ArrLong = new[] { (long)987, (long)543 };
            prop        = typeof(TestCustomObject).GetProperties().FirstOrDefault(z => z.Name == "ArrLong");
            EntityUtility.FillSystemType(obj, prop, "123,456,789");
            Assert.AreEqual(3, obj.ArrLong.Length);
            Assert.AreEqual(123, obj.ArrLong[0]);
            Assert.AreEqual(456, obj.ArrLong[1]);
            Assert.AreEqual(789, obj.ArrLong[2]);
        }
        private static void RunArrayTest(Type serializerType)
        {
            ISerializerAdapter serializer = (ISerializerAdapter)Activator.CreateInstance(serializerType);

            TestCustomObject[] messages = new TestCustomObject[] { new TestCustomObject {
                                                                       Value = 10
                                                                   } };
            Type messagesType = typeof(TestCustomObject[]);

            using (MemoryStream ms = new MemoryStream())
            {
                object output = null;
                bool   ex     = false;
                try
                {
                    serializer.Serialize(new IndisposableStream(ms), messages);

                    ms.Flush();
                    ms.Seek(0, SeekOrigin.Begin);

                    output = serializer.Deserialize(new IndisposableStream(ms), messagesType);
                }
                catch (Exception x)
                {
                    Assert.Inconclusive("The the serializer has at least thrown an exception instead of unexpected results {0}", x);
                    ex = true;
                }
                if (!ex)
                {
                    Assert.IsInstanceOfType(messagesType, output);
                    TestCustomObject[] deserialized = output as TestCustomObject[];
                    Assert.AreEqual(messages.Single().Value.ToString(), deserialized.Single().Value.ToString());
                }
            }
        }
Ejemplo n.º 6
0
 private void AddPhoneNumberOther(IZetboxContext create_ctx, TestCustomObject obj, int count)
 {
     for (int i = 0; i < count; i++)
     {
         var c = create_ctx.CreateCompoundObject <TestPhoneCompoundObject>();
         c.AreaCode = "123";
         c.Number   = rnd.Next(int.MaxValue).ToString();
         obj.PhoneNumbersOther.Add(c);
     }
 }
Ejemplo n.º 7
0
        public void InitTestObjects()
        {
            DeleteTestData();
            CreateTestData();

            ctx = GetContext();
            obj = ctx.GetQuery <TestCustomObject>().First();

            testNumber = "TestNumber " + rnd.NextDouble().ToString(CultureInfo.InvariantCulture);
        }
Ejemplo n.º 8
0
        public void InitTestObjects()
        {
            DeleteTestData();
            CreateTestData();

            ctx = GetContext();
            obj = ctx.GetQuery<TestCustomObject>().First();

            testNumber = "TestNumber " + rnd.NextDouble().ToString(CultureInfo.InvariantCulture);
        }
        public void GenerateImportFieldMappingTest()
        {
            //Arrange
            var cdo = new TestCustomObject();

            //Act
            var result = CustomObjectData.GenerateImportFieldMapping(cdo);

            //Assert

            Assert.AreEqual(@"""CustomProp1"": ""{{CustomObject[30].Field[122]}}"",", result);
        }
Ejemplo n.º 10
0
        public async Task GenericGet()
        {
            StorageQueue storage = await QueueSetup();

            var expected = new TestCustomObject {
                FooInt = 42, FooString = "The Answer"
            };
            await storage.SendAsync(expected);

            var returned = await storage.GetAsync <TestCustomObject>();

            Assert.AreEqual(expected.FooString, returned.FooString);
            Assert.AreEqual(expected.FooInt, returned.FooInt);
            await storage.Delete();
        }
Ejemplo n.º 11
0
        public void SerializerTest()
        {
            var obj = new TestCustomObject()
            {
                Id      = 666,
                Name    = "Jeffrey Su",
                Markers = 7
            };

            var xmlStr = XmlUtility.Serializer(obj);

            Console.WriteLine(xmlStr);

            Assert.IsNotNull(xmlStr);
            Assert.IsTrue(xmlStr.Length > 0);
        }
Ejemplo n.º 12
0
        public async Task RoundTripObject()
        {
            StorageQueue storage = await QueueSetup();

            var expected = new TestCustomObject {
                FooInt = 42, FooString = "The Answer"
            };
            await storage.SendAsync <TestCustomObject>(expected);

            var returned = await storage.Get();

            var deserialized = JsonConvert.DeserializeObject <TestCustomObject>(returned.AsString);

            Assert.AreEqual(expected.FooString, deserialized.FooString);
            Assert.AreEqual(expected.FooInt, deserialized.FooInt);
            await storage.Delete();
        }
        public void IDictionaryExtensionsTest()
        {
            var dic = new Dictionary <string, object>();

            dic["A"] = 1;
            dic["B"] = "2";
            dic["C"] = new TestCustomObject()
            {
                Id = 666
            };

            dynamic result = dic.ToExpando();

            Assert.AreEqual(1, result.A);
            Assert.AreEqual("2", result.B);
            Assert.IsInstanceOfType(result.C, typeof(TestCustomObject));
            Assert.AreEqual(666, (result.C as TestCustomObject).Id);
        }
        public void DeserializeTest()
        {
            var dic = new Dictionary <string, object>();

            dic["A"] = 1;
            dic["B"] = "2";
            dic["C"] = new TestCustomObject()
            {
                Id = 666
            };

            var convert = new Senparc.CO2NET.Helpers.ExpandoJsonConverter();
            var result  = (dynamic)convert.Deserialize(dic, null, null);

            Assert.AreEqual(1, result.A);
            Assert.AreEqual("2", result.B);
            Assert.IsInstanceOfType(result.C, typeof(TestCustomObject));
            Assert.AreEqual(666, (result.C as TestCustomObject).Id);
        }
        private static void RunArrayTest(Type serializerType)
        {
            ISerializerAdapter serializer = (ISerializerAdapter)Activator.CreateInstance(serializerType);
            TestCustomObject[] messages = new TestCustomObject[] { new TestCustomObject { Value = 10 } };
            Type messagesType = typeof(TestCustomObject[]);

            using (MemoryStream ms = new MemoryStream())
            {
                object output = null;
                bool ex = false;
                try
                {
                    MethodInfo serializeMethod = serializerType.GetMethod("Serialize");
                    MethodInfo genericSerialize = serializeMethod.MakeGenericMethod(messagesType);
                    genericSerialize.Invoke(serializer, new object[] { new IndisposableStream(ms), messages });

                    ms.Flush();
                    ms.Seek(0, SeekOrigin.Begin);

                    MethodInfo deserializeMethod = serializerType.GetMethod("Deserialize");
                    MethodInfo genericDeserialize = deserializeMethod.MakeGenericMethod(messagesType);
                    output = genericDeserialize.Invoke(serializer, new object[] { new IndisposableStream(ms) });
                }
                catch (Exception x)
                {
                    Assert.Inconclusive("The the serializer has at least thrown an exception instead of unexpected results {0}", x);
                    ex = true;
                }
                if (!ex)
                {
                    Assert.IsInstanceOfType(messagesType, output);
                    TestCustomObject[] deserialized = output as TestCustomObject[];
                    Assert.AreEqual(messages.Single().Value.ToString(), deserialized.Single().Value.ToString());
                }
            }
        }
Ejemplo n.º 16
0
 private void AddPhoneNumberOther(IZetboxContext create_ctx, TestCustomObject obj, int count)
 {
     for (int i = 0; i < count; i++)
     {
         var c = create_ctx.CreateCompoundObject<TestPhoneCompoundObject>();
         c.AreaCode = "123";
         c.Number = rnd.Next(int.MaxValue).ToString();
         obj.PhoneNumbersOther.Add(c);
     }
 }
Ejemplo n.º 17
0
 public override void ForgetContext()
 {
     base.ForgetContext();
     newCtx = null;
     newObj = null;
 }
Ejemplo n.º 18
0
 public virtual void ForgetContext()
 {
     ctx = null;
     obj = null;
 }
Ejemplo n.º 19
0
 protected override void CreateTestData()
 {
     base.CreateTestData();
     newCtx = GetContext();
     newObj = newCtx.Create<TestCustomObject>();
 }
Ejemplo n.º 20
0
 protected bool Equals(TestCustomObject other)
 {
     return(string.Equals(Text, other.Text));
 }
Ejemplo n.º 21
0
        public async Task CRDTest()
        {
            var crds = await this._kubeClient.ListCRDs();

            var crdToCleanUp = crds.SingleOrDefault(c => c.Metadata.Name == "crontabs.stable.example.com");

            if (crdToCleanUp != null)
            {
                await this._kubeClient.DeleteCRD(crdToCleanUp);
            }

            var newCrd = new CustomResourceDefinition
            {
                ApiVersion = "apiextensions.k8s.io/v1beta1",
                Kind       = "CustomResourceDefinition",
                Metadata   = new ObjectMetadata
                {
                    Name = "crontabs.stable.example.com"
                },
                Spec = new CustomResourceDefinitionSpec
                {
                    Group   = "stable.example.com",
                    Version = "v1",
                    Scope   = "Namespaced",
                    Names   = new CustomResourceDefinitionNames
                    {
                        Plural     = "crontabs",
                        Singular   = "crontab",
                        Kind       = "CronTab",
                        ShortNames = new List <string> {
                            "ct"
                        }
                    }
                }
            };

            var crdCreated = await this._kubeClient.CreateCRD(newCrd);

            crds = await this._kubeClient.ListCRDs();

            Assert.NotNull(crds);
            Assert.True(crds.Count == 1);

            var newCustomObj = new TestCustomObject
            {
                ApiVersion = "stable.example.com/v1",
                Kind       = "CronTab",
                Metadata   = new ObjectMetadata
                {
                    Name = "my-new-cron-object"
                },
                CronSpec = "* * * * */5",
                Image    = "my-awesome-cron-image"
            };

            var customObjCreated = await this._kubeClient.CreateCustomObject("v1", "crontabs", newCustomObj);

            Assert.NotNull(customObjCreated);

            var customObjs = await this._kubeClient.ListCustomObjects <TestCustomObject>("v1", "crontabs");

            Assert.NotNull(customObjs);
            Assert.True(customObjs.Count == 1);

            var customObjFound = await this._kubeClient.GetCustomObject <TestCustomObject>("my-new-cron-object", "v1", "crontabs");

            Assert.NotNull(customObjFound);

            await this._kubeClient.DeleteCustomObject(customObjCreated.Metadata.Name, "v1", "crontabs");

            crdToCleanUp = crds.SingleOrDefault(c => c.Metadata.Name == "crontabs.stable.example.com");
            Assert.NotNull(crdToCleanUp);

            await this._kubeClient.DeleteCRD(crdToCleanUp);
        }
        public async Task CRDTest()
        {
            const string crdName = "crontabs.stable.example.com";
            var          crds    = await this._kubeClient.ListCustomResourceDefinitionAsync();

            var crdToCleanUp = crds.Items.SingleOrDefault(c => c.Metadata.Name == crdName);

            if (crdToCleanUp != null)
            {
                await this._kubeClient.DeleteCustomResourceDefinitionAsync(crdName);
            }

            var newCrd = new V1CustomResourceDefinition
            {
                ApiVersion = "apiextensions.k8s.io/v1",
                Kind       = "CustomResourceDefinition",
                Metadata   = new V1ObjectMeta
                {
                    Name = "crontabs.stable.example.com"
                },
                Spec = new V1CustomResourceDefinitionSpec
                {
                    Group    = "stable.example.com",
                    Versions = new List <V1CustomResourceDefinitionVersion> {
                        new V1CustomResourceDefinitionVersion
                        {
                            Name    = "v1",
                            Served  = true,
                            Storage = true,
                            Schema  = new V1CustomResourceValidation {
                                OpenAPIV3Schema = new V1JSONSchemaProps
                                {
                                    Required = new List <string> {
                                        "CronSpec", "Image"
                                    },
                                    Type       = "object",
                                    Properties = new Dictionary <string, V1JSONSchemaProps>
                                    {
                                        { "CronSpec", new V1JSONSchemaProps {
                                              Type = "string"
                                          } },
                                        { "Image", new V1JSONSchemaProps {
                                              Type = "string"
                                          } }
                                    }
                                }
                            }
                        }
                    },
                    Scope = "Namespaced",
                    Names = new V1CustomResourceDefinitionNames
                    {
                        Plural     = "crontabs",
                        Singular   = "crontab",
                        Kind       = "CronTab",
                        ShortNames = new List <string> {
                            "ct"
                        }
                    }
                }
            };

            var crdCreated = await this._kubeClient.CreateCustomResourceDefinitionAsync(newCrd);

            crds = await this._kubeClient.ListCustomResourceDefinitionAsync();

            Assert.NotNull(crds);
            Assert.NotNull(crds.Items.SingleOrDefault(c => c.Metadata.Name == crdName));

            var newCustomObj = new TestCustomObject
            {
                ApiVersion = "stable.example.com/v1",
                Kind       = "CronTab",
                Metadata   = new V1ObjectMeta
                {
                    Name = "my-new-cron-object"
                },
                CronSpec = "* * * * */5",
                Image    = "my-awesome-cron-image"
            };

            var customObjCreated = ((JObject)await this._kubeClient.CreateNamespacedCustomObjectAsync(newCustomObj, "stable.example.com", "v1", "default", "crontabs")).ToObject <TestCustomObject>();

            Assert.NotNull(customObjCreated);

            var a = await this._kubeClient.ListNamespacedCustomObjectAsync("stable.example.com", "v1", "default", "crontabs");

            var customObjs = ((JObject)await this._kubeClient.ListNamespacedCustomObjectAsync("stable.example.com", "v1", "default", "crontabs"))["items"].ToObject <TestCustomObject[]>();

            Assert.NotNull(customObjs);
            Assert.True(customObjs.Length == 1);

            var customObjFound = ((JObject)await this._kubeClient.GetNamespacedCustomObjectAsync("stable.example.com", "v1", "default", "crontabs", "my-new-cron-object")).ToObject <TestCustomObject>();

            Assert.NotNull(customObjFound);

            await this._kubeClient.DeleteNamespacedCustomObjectAsync("stable.example.com", "v1", "default", "crontabs", "my-new-cron-object");

            await this._kubeClient.DeleteCustomResourceDefinitionAsync(crdName);
        }
        public void InterfaceTest()
        {
            var cache = LocalObjectCacheStrategy.Instance;
            var key   = "LocalObjectCacheStrategyInterfaceTest";
            var value = DateTime.Now.ToString();

            //Set
            cache.Set(key, value);

            //Get
            var getResult = cache.Get(key);

            Assert.AreEqual(value, getResult);

            //Get<T>
            var objKey   = "LocalObjectCacheStrategyInterfaceTestObjKey";
            var objValue = new TestCustomObject();//定义复杂类型

            cache.Set(objKey, objValue);
            var getObjResult = cache.Get <TestCustomObject>(objKey);

            Assert.IsInstanceOfType(objValue, typeof(TestCustomObject));
            Assert.AreEqual(objValue.GetHashCode(), getObjResult.GetHashCode());//不同的策略可能会不同

            Assert.AreEqual(objValue.Id, getObjResult.Id);
            Assert.AreEqual(objValue.Name, getObjResult.Name);
            Assert.AreEqual(objValue.AddTime, getObjResult.AddTime);

            //GetAll
            var allObjects = cache.GetAll();

            Assert.IsTrue(allObjects.Count > 0);

            Console.WriteLine($"GetAll:");
            foreach (var item in allObjects)
            {
                Console.WriteLine($"Key:{item.Key},Value:{item.Value}");
            }

            //CheckExisted
            Assert.IsTrue(cache.CheckExisted(key));
            Assert.IsTrue(cache.CheckExisted(objKey));
            Assert.IsFalse(cache.CheckExisted(key + objKey));

            //GetCount
            var count = cache.GetCount();

            Assert.AreEqual(allObjects.Count, count);

            //Update
            objValue.Id      = 666;
            objValue.Name    = "NewDomainName";
            objValue.AddTime = DateTime.Now;

            cache.Update(objKey, objValue);
            var updatedRessult = cache.Get <TestCustomObject>(objKey);

            Assert.AreEqual(objValue.GetHashCode(), updatedRessult.GetHashCode());//不同的策略可能会不同
            Assert.AreEqual(objValue.Id, updatedRessult.Id);
            Assert.AreEqual(objValue.Name, updatedRessult.Name);
            Assert.AreEqual(objValue.AddTime, updatedRessult.AddTime);

            //Remove
            cache.RemoveFromCache(key);
            getResult = cache.Get(key);
            Assert.IsNull(getResult);

            cache.RemoveFromCache(objKey);
            var removedRessult = cache.Get <TestCustomObject>(objKey);

            Assert.IsNull(removedRessult);

            var newCount = cache.GetCount();

            Assert.AreEqual(count - 2, newCount);//移除两项的计数
        }
Ejemplo n.º 24
0
 protected override void CreateTestData()
 {
     base.CreateTestData();
     newCtx = GetContext();
     newObj = newCtx.Create <TestCustomObject>();
 }
Ejemplo n.º 25
0
 public override void ForgetContext()
 {
     base.ForgetContext();
     newCtx = null;
     newObj = null;
 }
Ejemplo n.º 26
0
 public virtual void ForgetContext()
 {
     ctx = null;
     obj = null;
 }
Ejemplo n.º 27
0
 public TestCustomObjectViewModel(
     IViewModelDependencies appCtx, IZetboxContext dataCtx, ViewModel parent,
     TestCustomObject obj)
     : base(appCtx, dataCtx, parent, obj)
 {
 }