public void It_writes_to_shadow_state_properties()
        {
            var entityType = CreateModel().GetEntityType("ShadowEntity");
            var entry      = _factory.Create(entityType, new AtsObjectArrayValueReader(new object[4]));
            var adapter    = new StateEntryTableEntityAdapter <object>(entry);
            var pkProp     = entry.EntityType.GetPropertyByColumnName("PartitionKey");
            var rkProp     = entry.EntityType.GetPropertyByColumnName("RowKey");
            var tmProp     = entry.EntityType.GetPropertyByColumnName("Timestamp");
            var someProp   = entry.EntityType.GetPropertyByColumnName("SomeProperty");

            adapter.PartitionKey = "PK";
            adapter.RowKey       = "RK";
            var timestamp = DateTimeOffset.UtcNow;

            adapter.Timestamp = timestamp;
            adapter.ReadEntity(new Dictionary <string, EntityProperty>
            {
                { "SomeProperty", new EntityProperty(324890) }
            }, null);

            Assert.Equal("PK", entry[pkProp]);
            Assert.Equal("RK", entry[rkProp]);
            Assert.Equal(timestamp, entry[tmProp]);
            Assert.Equal(324890, entry[someProp]);
        }
        public void It_skips_mismatched_types()
        {
            var data = new Dictionary <string, EntityProperty>
            {
                { "StringProp", new EntityProperty(5) },
                { "IntProp", new EntityProperty("string input") },
            };
            var instance = new ClrPocoWithProp();

            var entityType = CreateModel().GetEntityType(typeof(ClrPocoWithProp));
            var entry      = _factory.Create(entityType, instance);
            var adapter    = new StateEntryTableEntityAdapter <ClrPocoWithProp>(entry);

            adapter.ReadEntity(data, null);

            Assert.Equal(default(string), instance.StringProp);
            Assert.Equal(default(int), instance.IntProp);
        }
        public void It_reads_from_dictionary()
        {
            var data = new Dictionary <string, EntityProperty>
            {
                { "StringProp", new EntityProperty("StringVal") },
                { "IntProp", new EntityProperty(5) },
            };
            var instance = new ClrPocoWithProp();

            var entityType = CreateModel().GetEntityType(typeof(ClrPocoWithProp));
            var entry      = _factory.Create(entityType, instance);
            var adapter    = new StateEntryTableEntityAdapter <ClrPocoWithProp>(entry);

            adapter.ReadEntity(data, null);

            Assert.Equal("StringVal", instance.StringProp);
            Assert.Equal(5, instance.IntProp);
        }
コード例 #4
0
        public void It_writes_to_shadow_state_properties()
        {
            var entityType = CreateModel().GetEntityType("ShadowEntity");
            var entry = _factory.Create(entityType, new AtsObjectArrayValueReader(new object[4]));
            var adapter = new StateEntryTableEntityAdapter<object>(entry);
            var pkProp = entry.EntityType.GetPropertyByColumnName("PartitionKey");
            var rkProp = entry.EntityType.GetPropertyByColumnName("RowKey");
            var tmProp = entry.EntityType.GetPropertyByColumnName("Timestamp");
            var someProp = entry.EntityType.GetPropertyByColumnName("SomeProperty");

            adapter.PartitionKey = "PK";
            adapter.RowKey = "RK";
            var timestamp = DateTimeOffset.UtcNow;
            adapter.Timestamp = timestamp;
            adapter.ReadEntity(new Dictionary<string, EntityProperty>
                {
                    { "SomeProperty", new EntityProperty(324890) }
                }, null);

            Assert.Equal("PK", entry[pkProp]);
            Assert.Equal("RK", entry[rkProp]);
            Assert.Equal(timestamp, entry[tmProp]);
            Assert.Equal(324890, entry[someProp]);
        }
コード例 #5
0
        public void It_skips_mismatched_types()
        {
            var data = new Dictionary<string, EntityProperty>
                {
                    { "StringProp", new EntityProperty(5) },
                    { "IntProp", new EntityProperty("string input") },
                };
            var instance = new ClrPocoWithProp();

            var entityType = CreateModel().GetEntityType(typeof(ClrPocoWithProp));
            var entry = _factory.Create(entityType, instance);
            var adapter = new StateEntryTableEntityAdapter<ClrPocoWithProp>(entry);

            adapter.ReadEntity(data, null);

            Assert.Equal(default(string), instance.StringProp);
            Assert.Equal(default(int), instance.IntProp);
        }
コード例 #6
0
        public void It_reads_from_dictionary()
        {
            var data = new Dictionary<string, EntityProperty>
                {
                    { "StringProp", new EntityProperty("StringVal") },
                    { "IntProp", new EntityProperty(5) },
                };
            var instance = new ClrPocoWithProp();

            var entityType = CreateModel().GetEntityType(typeof(ClrPocoWithProp));
            var entry = _factory.Create(entityType, instance);
            var adapter = new StateEntryTableEntityAdapter<ClrPocoWithProp>(entry);

            adapter.ReadEntity(data, null);

            Assert.Equal("StringVal", instance.StringProp);
            Assert.Equal(5, instance.IntProp);
        }