public override void SetUp() { base.SetUp(); CreateObject(); ctx = GetContext(); obj = GetObject(); }
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(); }
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]); }
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()); } } }
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); } }
public void InitTestObjects() { DeleteTestData(); CreateTestData(); ctx = GetContext(); obj = ctx.GetQuery <TestCustomObject>().First(); testNumber = "TestNumber " + rnd.NextDouble().ToString(CultureInfo.InvariantCulture); }
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); }
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(); }
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); }
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()); } } }
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); } }
public override void ForgetContext() { base.ForgetContext(); newCtx = null; newObj = null; }
public virtual void ForgetContext() { ctx = null; obj = null; }
protected override void CreateTestData() { base.CreateTestData(); newCtx = GetContext(); newObj = newCtx.Create<TestCustomObject>(); }
protected bool Equals(TestCustomObject other) { return(string.Equals(Text, other.Text)); }
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);//移除两项的计数 }
protected override void CreateTestData() { base.CreateTestData(); newCtx = GetContext(); newObj = newCtx.Create <TestCustomObject>(); }
public TestCustomObjectViewModel( IViewModelDependencies appCtx, IZetboxContext dataCtx, ViewModel parent, TestCustomObject obj) : base(appCtx, dataCtx, parent, obj) { }