Ejemplo n.º 1
0
        public void CallApplyingHandler()
        {
            List <Tuple <Foo, PropertyOperationData> > callsLog = new List <Tuple <Foo, PropertyOperationData> >();

            _tracker.Configure <Foo>()
            .Id(f => f.Int.ToString())
            .Properties(f => new { f.Double, f.Timespan })
            .WhenApplyingProperty((f, pd) => callsLog.Add(new Tuple <Foo, PropertyOperationData>(f, pd)));

            _store.SetData("321", new Dictionary <string, object> {
                ["Double"] = 444, ["Timespan"] = new TimeSpan(1, 2, 3)
            });

            var foo = new Foo()
            {
                Int = 321,
            };

            _tracker.Track(foo);

            Assert.Equal(2, callsLog.Count);
            Assert.Equal(foo, callsLog[0].Item1);
            Assert.Equal("Double", callsLog[0].Item2.Property);
            Assert.Equal(444, callsLog[0].Item2.Value);
            Assert.Equal(foo, callsLog[1].Item1);
            Assert.Equal("Timespan", callsLog[1].Item2.Property);
            Assert.Equal(new TimeSpan(1, 2, 3), callsLog[1].Item2.Value);
        }