示例#1
0
        public void FilterByKey_LessThan_Returns_Only_Match_Results()
        {
            _context.Database.EnsureDeleted();
            var service = new TimeLineService(_context);

            var o = new Observation()
            {
                On          = "2001/01/01",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=1" }
            };

            var o2 = new Observation()
            {
                On          = "2001/01/02",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=10" }
            };


            service.RegisterObservation(o);
            service.RegisterObservation(o2);

            var result = service.SearchState(new[] { "State.MyVal < 10" });

            Assert.Equal("E1", result.First().Entity);
            Assert.Equal(new DateTime(2001, 1, 1), result.First().Start);
            Assert.Equal(new DateTime(2001, 1, 2).AddSeconds(-1), result.First().End);

            Assert.Equal(1, result.Count);
        }
示例#2
0
        public void FilterByBefore_ReturnsResults()
        {
            _context.Database.EnsureDeleted();
            var service = new TimeLineService(_context);

            var o = new Observation()
            {
                On          = "2001/01/01",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=Hello World" }
            };

            var o2 = new Observation()
            {
                On          = "2001/01/04",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=More" }
            };

            service.RegisterObservation(o);
            service.RegisterObservation(o2);

            var result = service.SearchState(new[] { "Before=1/02/2001" });

            Assert.Equal(new DateTime(2001, 1, 1), result.First().Start);
            Assert.Equal(new DateTime(2001, 1, 2), result.First().End);
            Assert.Equal("Hello World", result.First().Value);
            Assert.Equal(1, result.Count);
        }
示例#3
0
        public void FilterByKey_ReturnsResults()
        {
            _context.Database.EnsureDeleted();
            var service = new TimeLineService(_context);

            var o = new Observation()
            {
                On          = "2001/01/01",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=Hello World" }
            };

            var o2 = new Observation()
            {
                On          = "2001/01/02",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=More" }
            };

            service.RegisterObservation(o);
            service.RegisterObservation(o2);

            var result = service.SearchState(new[] { "State.MyVal=Hello World" }).First();

            Assert.Equal("E1", result.Entity);
            Assert.Equal(new DateTime(2001, 1, 1), result.Start);
            Assert.Equal(new DateTime(2001, 1, 2).AddSeconds(-1), result.End);
        }
示例#4
0
        public void FilterByAfter_Between_Observations_ReturnsResults()
        {
            _context.Database.EnsureDeleted();
            var service = new TimeLineService(_context);

            var o = new Observation()
            {
                On          = "2001/01/01",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=Hello World" }
            };

            var o2 = new Observation()
            {
                On          = "2001/01/03",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=More" }
            };

            service.RegisterObservation(o);
            service.RegisterObservation(o2);

            var result = service.SearchState(new[] { "After=1/02/2001" });

            Assert.Equal(2, result.Count());
            Assert.Equal(new DateTime(2001, 1, 2), result.First().Start);
            Assert.Equal(new DateTime(2001, 1, 3).AddSeconds(-1), result.First().End);
            Assert.Equal("Hello World", result.First().Value);


            Assert.Equal(new DateTime(2001, 1, 3), result.Skip(1).First().Start);
            Assert.Null(result.Skip(1).First().End);
            Assert.Equal("More", result.Skip(1).First().Value);
        }
示例#5
0
        public void FilterByAfter_AfterEndOfLine_ReturnsResults()
        {
            _context.Database.EnsureDeleted();
            var service = new TimeLineService(_context);

            var o = new Observation()
            {
                On          = "2001/01/01",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=Hello World" }
            };

            var o2 = new Observation()
            {
                On          = "2001/01/03",
                Entity      = "E1",
                Expressions = new[] { "State.MyVal=More" }
            };

            service.RegisterObservation(o);
            service.RegisterObservation(o2);

            var result = service.SearchState(new[] { "After=1/04/2001" }).First();

            Assert.Equal(new DateTime(2001, 1, 4), result.Start);
            Assert.Equal("More", result.Value);
            Assert.Null(result.End);
        }