| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | package tsdb | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | 	"time" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	. "github.com/smartystreets/goconvey/convey" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestTimeRange(t *testing.T) { | 
					
						
							|  |  |  | 	Convey("Time range", t, func() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		now := time.Now() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Convey("Can parse 5m, now", func() { | 
					
						
							|  |  |  | 			tr := TimeRange{ | 
					
						
							|  |  |  | 				From: "5m", | 
					
						
							|  |  |  | 				To:   "now", | 
					
						
							| 
									
										
										
										
											2018-01-11 22:01:49 +08:00
										 |  |  | 				now:  now, | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			Convey("5m ago ", func() { | 
					
						
							|  |  |  | 				fiveMinAgo, _ := time.ParseDuration("-5m") | 
					
						
							|  |  |  | 				expected := now.Add(fiveMinAgo) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 				res, err := tr.ParseFrom() | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 				So(err, ShouldBeNil) | 
					
						
							| 
									
										
										
										
											2016-09-21 19:41:25 +08:00
										 |  |  | 				So(res.Unix(), ShouldEqual, expected.Unix()) | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			Convey("now ", func() { | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 				res, err := tr.ParseTo() | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 				So(err, ShouldBeNil) | 
					
						
							| 
									
										
										
										
											2016-09-21 19:41:25 +08:00
										 |  |  | 				So(res.Unix(), ShouldEqual, now.Unix()) | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			}) | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Convey("Can parse 5h, now-10m", func() { | 
					
						
							|  |  |  | 			tr := TimeRange{ | 
					
						
							|  |  |  | 				From: "5h", | 
					
						
							|  |  |  | 				To:   "now-10m", | 
					
						
							| 
									
										
										
										
											2018-01-11 22:01:49 +08:00
										 |  |  | 				now:  now, | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			Convey("5h ago ", func() { | 
					
						
							| 
									
										
										
										
											2016-09-21 19:41:25 +08:00
										 |  |  | 				fiveHourAgo, _ := time.ParseDuration("-5h") | 
					
						
							|  |  |  | 				expected := now.Add(fiveHourAgo) | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 				res, err := tr.ParseFrom() | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 				So(err, ShouldBeNil) | 
					
						
							| 
									
										
										
										
											2016-09-21 19:41:25 +08:00
										 |  |  | 				So(res.Unix(), ShouldEqual, expected.Unix()) | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			Convey("now-10m ", func() { | 
					
						
							| 
									
										
										
										
											2017-05-24 14:38:13 +08:00
										 |  |  | 				tenMinAgo, _ := time.ParseDuration("-10m") | 
					
						
							|  |  |  | 				expected := now.Add(tenMinAgo) | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 				res, err := tr.ParseTo() | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 				So(err, ShouldBeNil) | 
					
						
							| 
									
										
										
										
											2016-09-21 19:41:25 +08:00
										 |  |  | 				So(res.Unix(), ShouldEqual, expected.Unix()) | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			}) | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-27 20:39:51 +08:00
										 |  |  | 		Convey("can parse unix epocs", func() { | 
					
						
							|  |  |  | 			var err error | 
					
						
							|  |  |  | 			tr := TimeRange{ | 
					
						
							|  |  |  | 				From: "1474973725473", | 
					
						
							|  |  |  | 				To:   "1474975757930", | 
					
						
							| 
									
										
										
										
											2018-01-11 22:01:49 +08:00
										 |  |  | 				now:  now, | 
					
						
							| 
									
										
										
										
											2016-09-27 20:39:51 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 			res, err := tr.ParseFrom() | 
					
						
							| 
									
										
										
										
											2016-09-27 20:39:51 +08:00
										 |  |  | 			So(err, ShouldBeNil) | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 			So(res.UnixNano()/int64(time.Millisecond), ShouldEqual, 1474973725473) | 
					
						
							| 
									
										
										
										
											2016-09-27 20:39:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 			res, err = tr.ParseTo() | 
					
						
							| 
									
										
										
										
											2016-09-27 20:39:51 +08:00
										 |  |  | 			So(err, ShouldBeNil) | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 			So(res.UnixNano()/int64(time.Millisecond), ShouldEqual, 1474975757930) | 
					
						
							| 
									
										
										
										
											2016-09-27 20:39:51 +08:00
										 |  |  | 		}) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 		Convey("Cannot parse asdf", func() { | 
					
						
							|  |  |  | 			var err error | 
					
						
							|  |  |  | 			tr := TimeRange{ | 
					
						
							|  |  |  | 				From: "asdf", | 
					
						
							|  |  |  | 				To:   "asdf", | 
					
						
							| 
									
										
										
										
											2018-01-11 22:01:49 +08:00
										 |  |  | 				now:  now, | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 			_, err = tr.ParseFrom() | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			So(err, ShouldNotBeNil) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 00:17:39 +08:00
										 |  |  | 			_, err = tr.ParseTo() | 
					
						
							| 
									
										
										
										
											2016-09-21 13:01:53 +08:00
										 |  |  | 			So(err, ShouldNotBeNil) | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 	}) | 
					
						
							|  |  |  | } |