Esempio n. 1
0
 static JsImplDateTime()
 {
     MinValue = new JsDate(0).As<JsImplDateTime>();
     MinValue.setUTCFullYear(1, 0, 1);
     MaxValue = new JsDate(0).As<JsImplDateTime>();
     MaxValue.setUTCFullYear(9999, 11, 31);
 }
Esempio n. 2
0
   public void Filters()
   {
      describe("Filters",()=>
      {
         describe("Currency filter",()=>
         {
            it("should format numbers to money amounts",()=>
            {
               currencyFilter f = Angular.BuiltinFilters.currencyFilter;
               expect(f.Filter(0))       .toBe("$0.00");
               expect(f.Filter(5.75))    .toBe("$5.75");
               expect(f.Filter(1000000)) .toBe("$1,000,000.00");
               expect(f.Filter(-5.75))   .toBe("($5.75)");
               expect(f.Filter(5.753))   .toBe("$5.75");
               expect(f.Filter(5.75,"€")).toBe("€5.75");
            });
         });

         describe("Date filter",()=>
         {
            dateFilter f = Angular.BuiltinFilters.dateFilter;
            JsDate d = new JsDate(1972,4,3);

            it("should format dates to U.S. format",()=>{ expect(f.Filter(d)).toBe("May 3, 1972"); });
            it("should format short dates",()=>{ expect(f.Filter(d,"dd/MM/yy")).toBe("03/05/72"); });
            it("should format long dates",()=>{ expect(f.Filter(d,"dd/MM/yyyy")).toBe("03/05/1972"); });
         });      
      });
   }
Esempio n. 3
0
		JsImplDateTime(JsDate jsDate)
		{
			if (jsDate != null)
				this.date = jsDate;
			else
				this.date = MinValue.date;
		}
Esempio n. 4
0
		public void YMDHConstructorWorks() {
			var dt = new JsDate(2011, 7, 12, 13);
			Assert.AreEqual(dt.GetFullYear(), 2011);
			Assert.AreEqual(dt.GetMonth(), 7);
			Assert.AreEqual(dt.GetDate(), 12);
			Assert.AreEqual(dt.GetHours(), 13);
		}
Esempio n. 5
0
		public JsImplDateTime(int year, int month, int day)
		{
			this.date = new JsDate();
			Year = year;
			Month = month;
			Day = day;
		}
Esempio n. 6
0
        public void FormatDateWorks()
        {
            var backupDec = Q.Culture.DateSeparator;
            try
            {
                Q.Culture.DateSeparator = "/";

                var date = new JsDate(2009, 0, 2, 3, 4, 5, 6); // 02.01.2009 03:04:05.006

                Assert.AreEqual(Q.FormatDate(date, "dd/MM/yyyy"), "02/01/2009", "'/': dd/MM/yyy");
                Assert.AreEqual(Q.FormatDate(date, "d/M/yy"), "2/1/09", "'/': d/M/yy");
                Assert.AreEqual(Q.FormatDate(date, "d.M.yyyy"), "2.1.2009", "'/': d.M.yyy");
                Assert.AreEqual(Q.FormatDate(date, "yyyyMMdd"), "20090102", "'/': yyyyMMdd");
                Assert.AreEqual(Q.FormatDate(date, "hh:mm tt"), "03:04 AM", "'/': hh:mm tt");
                Assert.AreEqual(Q.FormatDate(date, "yyyy-MM-ddTHH:mm:ss.fff"), "2009-01-02T03:04:05.006", "'/': yyyy-MM-ddTHH:mm:ss.fff");

                Q.Culture.DateSeparator = ".";

                Assert.AreEqual(Q.FormatDate(date, "dd/MM/yyyy"), "02.01.2009", "'.': dd/MM/yyy");
                Assert.AreEqual(Q.FormatDate(date, "d/M/yy"), "2.1.09", "'.': d/M/yy");
                Assert.AreEqual(Q.FormatDate(date, "d-M-yyyy"), "2-1-2009", "'.': d-M-yyy");
                Assert.AreEqual(Q.FormatDate(date, "yyyy-MM-ddTHH:mm:ss.fff"), "2009-01-02T03:04:05.006", "'.': yyyy-MM-ddTHH:mm:ss.fff");
            }
            finally
            {
                Q.Culture.DecimalSeparator = backupDec;
            }
        }
Esempio n. 7
0
		public void YMDHNSConstructorWorks() {
			var dt = new JsDate(2011, 7, 12, 13, 42, 56);
			Assert.AreEqual(dt.GetFullYear(), 2011);
			Assert.AreEqual(dt.GetMonth(), 7);
			Assert.AreEqual(dt.GetDate(), 12);
			Assert.AreEqual(dt.GetHours(), 13);
			Assert.AreEqual(dt.GetMinutes(), 42);
			Assert.AreEqual(dt.GetSeconds(), 56);
		}
 public void ConvertingMutableDateToDateReturnsANewButEqualInstance()
 {
     var mdt = new JsDate(2011, 7, 12);
     DateTime dt = (DateTime)mdt;
     Assert.IsFalse((object)dt == (object)mdt);
     Assert.AreEqual(mdt.GetFullYear(), 2011);
     Assert.AreEqual(mdt.GetMonth(), 7);
     Assert.AreEqual(mdt.GetDate(), 12);
 }
        public static string dateToRFC3339String(JsDate date)
        {
            if (date != null ) {
                var jsonDate = date.toJSON();
                return jsonDate.substring(0, 10);
            }

            return null;
        }
Esempio n. 10
0
		public JsImplDateTime(int year, int month, int day, int hour, int minute, int second)
		{
			this.date = new JsDate();
			Year = year;
			Month = month;
			Day = day;
			Hour = hour;
			Minute = minute;
			Second = second;
		}
Esempio n. 11
0
		public void TypePropertiesAreCorrect() {
			Assert.AreEqual(typeof(JsDate).FullName, "ss.JsDate");
			Assert.IsTrue(typeof(JsDate).IsClass);
			Assert.IsTrue(typeof(IComparable<JsDate>).IsAssignableFrom(typeof(JsDate)));
			Assert.IsTrue(typeof(IEquatable<JsDate>).IsAssignableFrom(typeof(JsDate)));
			object o = new JsDate();
			Assert.IsTrue(o is JsDate);
			Assert.IsTrue(o is IComparable<JsDate>);
			Assert.IsTrue(o is IEquatable<JsDate>);

			var interfaces = typeof(JsDate).GetInterfaces();
			Assert.AreEqual(interfaces.Length, 2);
			Assert.IsTrue(interfaces.Contains(typeof(IComparable<JsDate>)));
			Assert.IsTrue(interfaces.Contains(typeof(IEquatable<JsDate>)));
		}
Esempio n. 12
0
        public void FormatDateWorks()
        {
            var backupDec = Q.Culture.DateSeparator;
            var backupDateFormat = Q.Culture.DateFormat;
            var backupDateTimeFormat = Q.Culture.DateTimeFormat;
            try
            {
                Q.Culture.DateSeparator = "/";
                Q.Culture.DateFormat = "dd/MM/yyyy";
                Q.Culture.DateTimeFormat = "dd/MM/yyyy HH:mm:ss";

                var date = new JsDate(2029, 0, 2, 3, 4, 5, 6); // 02.01.2029 03:04:05.006

                Assert.AreEqual(Q.FormatDate(date, "dd/MM/yyyy"), "02/01/2029", "'/': dd/MM/yyy");
                Assert.AreEqual(Q.FormatDate(date, "d/M/yy"), "2/1/29", "'/': d/M/yy");
                Assert.AreEqual(Q.FormatDate(date, "d.M.yyyy"), "2.1.2029", "'/': d.M.yyy");
                Assert.AreEqual(Q.FormatDate(date, "yyyyMMdd"), "20290102", "'/': yyyyMMdd");
                Assert.AreEqual(Q.FormatDate(date, "hh:mm tt"), "03:04 AM", "'/': hh:mm tt");
                Assert.AreEqual(Q.FormatDate(date, "yyyy-MM-ddTHH:mm:ss.fff"), "2029-01-02T03:04:05.006", "'/': yyyy-MM-ddTHH:mm:ss.fff");
                Assert.AreEqual(Q.FormatDate(date, "d"), "02/01/2029", "'/': d");
                Assert.AreEqual(Q.FormatDate(date, "g"), "02/01/2029 03:04", "'/': g");
                Assert.AreEqual(Q.FormatDate(date, "G"), "02/01/2029 03:04:05", "'/': G");
                Assert.AreEqual(Q.FormatDate(date, "s"), "2029-01-02T03:04:05", "'/': s");
                Assert.AreEqual(Q.FormatDate(date, "u"), Q.FormatISODateTimeUTC(date), "'/': u");

                Q.Culture.DateSeparator = ".";

                Assert.AreEqual(Q.FormatDate(date, "dd/MM/yyyy"), "02.01.2029", "'.': dd/MM/yyy");
                Assert.AreEqual(Q.FormatDate(date, "d/M/yy"), "2.1.29", "'.': d/M/yy");
                Assert.AreEqual(Q.FormatDate(date, "d-M-yyyy"), "2-1-2029", "'.': d-M-yyy");
                Assert.AreEqual(Q.FormatDate(date, "yyyy-MM-ddTHH:mm:ss.fff"), "2029-01-02T03:04:05.006", "'.': yyyy-MM-ddTHH:mm:ss.fff");
                Assert.AreEqual(Q.FormatDate(date, "g"), "02.01.2029 03:04", "'.': g");
                Assert.AreEqual(Q.FormatDate(date, "G"), "02.01.2029 03:04:05", "'.': G");
                Assert.AreEqual(Q.FormatDate(date, "s"), "2029-01-02T03:04:05", "'.': s");
                Assert.AreEqual(Q.FormatDate(date, "u"), Q.FormatISODateTimeUTC(date), "'.': u");
            }
            finally
            {
                Q.Culture.DecimalSeparator = backupDec;
                Q.Culture.DateFormat = backupDateFormat;
                Q.Culture.DateTimeFormat = backupDateTimeFormat;
            }
        }
Esempio n. 13
0
        public void ToJSONWorks()
        {
            Assert.AreEqual(Q.ToJSON(12345), "12345", "Number");

            Assert.AreEqual(Q.ToJSON("abcd\"'e"), "\"abcd\\\"'e\"", "String");

            var date = new JsDate(2013, 12, 27, 16, 19, 35, 345);
            Assert.AreEqual(Q.ToJSON(date), "\"" + Q.Externals.FormatISODateTimeUTC(date) + "\"", "Date/Time");

            Assert.AreEqual(Q.ToJSON(12345.6780), "12345.678", "Double");

            object o = new { num = 5, str = "abc", date = date };

            string json = Q.ToJSON(o);
            Assert.IsTrue(Script.TypeOf(json) == "string", "Ensure serialized object is string");

            var deserialized = jQuery.ParseJson(json);
            o.As<dynamic>().date = Q.Externals.FormatISODateTimeUTC(date);
            Assert.AreEqual(deserialized, o, "Compare original object and deserialization");
        }
        public static object clone(object obj)
        {
            if ( ( obj == null) || ( JsContext.@typeof( obj ) != "object" ) ) {
                return obj;
            }

            //Dates
            if ( obj is JsDate ) {
                var copy = new JsDate();
                copy.setTime( obj.As<JsDate>().getTime() );
                return copy;
            }

            //Array
            if (obj is JsArray) {
                var copy = new JsArray();
                var current = obj.As<JsArray>();

                for (var i = 0; i < current.length; i++ ) {
                    copy[ i ] = clone( current[ i ] );
                }

                return copy;
            }

            //Object
            if (obj is JsObject) {
                var copy = new JsObject();
                var current = obj.As<JsObject>();

                foreach (var key in current ) {
                    if ( current.hasOwnProperty( key )) {
                        copy[ key ] = clone( current[ key ] );
                    }
                }

                return copy;
            }

            return null;
        }
Esempio n. 15
0
        /// <summary>
        /// Gets the offset in minutes from UTC for a certain date.
        /// </summary>
        private static int GetDateOffset(JsDate date)
        {
            var offset = -date.getTimezoneOffset();

            return(offset);
        }
Esempio n. 16
0
        public void SetUtcSecondsWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcSeconds(23);
			Assert.AreEqual(dt.GetUtcSeconds(), 23);
        }
Esempio n. 17
0
        public void SetUtcMillisecondsWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcMilliseconds(435);
			Assert.AreEqual(dt.GetUtcMilliseconds(), 435);
        }
Esempio n. 18
0
        public void SetUtcHoursWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcHours(11);
			Assert.AreEqual(dt.GetUtcHours(), 11);
        }
Esempio n. 19
0
        public void SetUtcMinutesWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcMinutes(34);
			Assert.AreEqual(dt.GetUtcMinutes(), 34);
        }
Esempio n. 20
0
		public void ToLocaleTimeStringWorks() {
			var dt = new JsDate(2011, 7, 12, 13, 42);
			var s = dt.ToLocaleTimeString();
			Assert.IsTrue(s.IndexOf("2011") < 0 && s.IndexOf("42") >= 0);
		}
Esempio n. 21
0
		public void SetUtcDateWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcDate(12);
			Assert.AreEqual(dt.GetUtcDate(), 12);
        }
Esempio n. 22
0
        public void SetUtcFullYearWithOneParameterWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcFullYear(2021);
			Assert.AreEqual(dt.GetUtcFullYear(), 2021);
        }
Esempio n. 23
0
        public void SetUtcFullYearWithThreeParametersWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcFullYear(2021, 7, 13);
			Assert.AreEqual(dt.GetUtcFullYear(), 2021);
			Assert.AreEqual(dt.GetUtcMonth(), 7);
			Assert.AreEqual(dt.GetUtcDate(), 13);
        }
Esempio n. 24
0
        public void SetFullYearWithTwoParametersWorks() {
			var dt = new JsDate(2000, 0, 1);
			dt.SetFullYear(2021, 7);
			Assert.AreEqual(dt.GetFullYear(), 2021);
			Assert.AreEqual(dt.GetMonth(), 7);
        }
Esempio n. 25
0
        public void SetTimeWorks() {
			var dt = new JsDate();
			dt.SetTime(3498302349234L);
			Assert.AreEqual(dt.GetTime(), 3498302349234L);
        }
Esempio n. 26
0
		public void StringConstructorWorks() {
			var dt = new JsDate("Aug 12, 2012");
			Assert.AreEqual(dt.GetFullYear(), 2012);
			Assert.AreEqual(dt.GetMonth(), 7);
			Assert.AreEqual(dt.GetDate(), 12);
		}
Esempio n. 27
0
		public void MillisecondSinceEpochConstructorWorks() {
			var dt = new JsDate(1440L * 60 * 500 * 1000);
			Assert.AreEqual(dt.GetFullYear(), 1971);
		}
Esempio n. 28
0
		public void GetUtcDayWorks() {
			var dt = new JsDate(JsDate.Utc(2011, 7, 12, 13, 42, 56, 345));
			Assert.AreEqual(dt.GetUtcDay(), 5);
		}
Esempio n. 29
0
 public DateTime(JsDate value, DateTimeKind kind = DateTimeKind.Unspecified)
 {
     this.value = value;
     this.kind  = kind;
 }
Esempio n. 30
0
        public void SetUtcMonthWorks() {
			var dt = new JsDate(JsDate.Utc(2000, 0, 1));
			dt.SetUtcMonth(3);
			Assert.AreEqual(dt.GetUtcMonth(), 3);
        }
Esempio n. 31
0
		private void AssertDateUtc(JsDate dt, int year, int month, int day, int hours, int minutes, int seconds, int milliseconds) {
			Assert.AreEqual(dt.GetUtcFullYear(), year);
			Assert.AreEqual(dt.GetUtcMonth(), month);
			Assert.AreEqual(dt.GetUtcDate(), day);
			Assert.AreEqual(dt.GetUtcHours(), hours);
			Assert.AreEqual(dt.GetUtcMinutes(), minutes);
			Assert.AreEqual(dt.GetUtcSeconds(), seconds);
			Assert.AreEqual(dt.GetUtcMilliseconds(), milliseconds);
		}
Esempio n. 32
0
		public void DefaultConstructorReturnsTodaysDate() {
			var dt = new JsDate();
			Assert.IsTrue(dt.GetFullYear() > 2011);
		}