示例#1
0
        public void SysUtils_Tests()
        {
            #if __MonoCS__
            Assert.IsTrue(SysUtils.IsUnix());
            Assert.AreEqual(PlatformID.Unix, SysUtils.GetPlatformID());
            Assert.IsFalse(string.IsNullOrEmpty(SysUtils.GetMonoVersion()));
            Assert.AreNotEqual(DesktopType.Windows, SysUtils.GetDesktopType());
            #else
            Assert.IsFalse(SysUtils.IsUnix());
            Assert.AreEqual(PlatformID.Win32NT, SysUtils.GetPlatformID());
            Assert.IsTrue(string.IsNullOrEmpty(SysUtils.GetMonoVersion()));
            Assert.AreEqual(DesktopType.Windows, SysUtils.GetDesktopType());
            #endif

            //

            Assert.IsTrue(SysUtils.IsUnicodeEncoding(Encoding.UTF8));
            Assert.IsFalse(SysUtils.IsUnicodeEncoding(Encoding.ASCII));

            //

            int days = SysUtils.DaysBetween(new DateTime(1990, 10, 10), new DateTime(1990, 10, 13));
            Assert.AreEqual(3, days);

            days = SysUtils.DaysBetween(new DateTime(1990, 10, 10), new DateTime(1990, 10, 02));
            Assert.AreEqual(-8, days);

            Assert.AreEqual(31, SysUtils.DaysInAMonth(1990, 5));

            //

            Assert.AreEqual(true, SysUtils.IsSetBit(3, 0));
            Assert.AreEqual(true, SysUtils.IsSetBit(3, 1));
            Assert.AreEqual(false, SysUtils.IsSetBit(3, 4));

            //

            Assert.AreEqual(495, SysUtils.Trunc(495.575));

            Assert.AreEqual(3.0f, SysUtils.SafeDiv(9.0f, 3.0f));
            Assert.AreEqual(0.0f, SysUtils.SafeDiv(9.0f, 0.0f));

            //

            Assert.Throws(typeof(ArgumentNullException), () => { SysUtils.FirstOrDefault <int>(null); });
            int N = SysUtils.FirstOrDefault(new int[] { 5, 7, 10 });
            Assert.AreEqual(5, N);

            Assert.Throws(typeof(ArgumentNullException), () => { SysUtils.LastOrDefault <int>(null); });
            N = SysUtils.LastOrDefault(new int[] { 5, 7, 10 });
            Assert.AreEqual(10, N);

            // other
            string st = "ivan";
            st = SysUtils.NormalizeName(st);
            Assert.AreEqual("Ivan", st);

            st = SysUtils.NormalizeName(null);
            Assert.AreEqual("", st);

            //
            Assert.AreEqual("", SysUtils.GetFileExtension("testfile"));
            Assert.AreEqual(".ext", SysUtils.GetFileExtension("testfile.eXt"));

            Assert.IsFalse(SysUtils.IsRemovableDrive(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)));

            Assembly asm   = this.GetType().Assembly;
            var      attr1 = SysUtils.GetAssemblyAttribute <AssemblyTitleAttribute>(asm);
            Assert.IsNotNull(attr1);
            Assert.AreEqual("GKTests", attr1.Title);

            Assert.Throws(typeof(ArgumentNullException), () => { SysUtils.GetAssemblyAttribute <AssemblyTitleAttribute>(null); });
        }