예제 #1
0
		public void Defaults ()
		{
			RepeatBehavior rb = new RepeatBehavior ();
			Assert.IsTrue (rb.HasCount, "HasCount");
			Assert.IsFalse (rb.HasDuration, "HasCount");

			Assert.AreEqual (0.0, rb.Count, "Count");
			Assert.Throws<InvalidOperationException> (delegate {
				Assert.AreEqual (TimeSpan.Zero, rb.Duration, "Duration");
			}, "Duration");

			Assert.AreEqual ("0x", rb.ToString (), "ToString");
		}
예제 #2
0
		public void DoubleConstructor ()
		{
			RepeatBehavior rb = new RepeatBehavior (1.0);
			Assert.IsTrue (rb.HasCount, "HasCount");
			Assert.IsFalse (rb.HasDuration, "HasCount");

			Assert.AreEqual (1.0, rb.Count, "Count");
			Assert.Throws<InvalidOperationException> (delegate {
				Assert.AreEqual (TimeSpan.Zero, rb.Duration, "Duration");
			}, "Duration");

			Assert.AreEqual ("1x", rb.ToString (), "ToString");

			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (-0.1);
			}, "Negative");
			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (Double.MinValue);
			}, "MinValue");
			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (Double.NegativeInfinity);
			}, "NegativeInfinity");

			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (Double.PositiveInfinity);
			}, "PositiveInfinity");
			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (Double.NaN);
			}, "NaN");

			rb = new RepeatBehavior (Double.MaxValue);
			Assert.IsTrue (rb.HasCount, "HasCount-Max");
			Assert.IsFalse (rb.HasDuration, "HasDuration-Max");
			Assert.AreEqual (Double.MaxValue, rb.Count, "Count-Max");
			Assert.AreEqual ("1.79769313486232E+308x", rb.ToString (), "ToString");
			Assert.IsFalse (rb.Equals (RepeatBehavior.Forever), "Max!=Forever");
		}
예제 #3
0
		public void TimeSpanConstructor ()
		{
			RepeatBehavior rb = new RepeatBehavior (TimeSpan.Zero);
			Assert.IsFalse (rb.HasCount, "HasCount");
			Assert.IsTrue (rb.HasDuration, "HasDuration");

			Assert.Throws<InvalidOperationException> (delegate {
				Assert.AreEqual (0, rb.Count, "Count");
			}, "Count");
			Assert.AreEqual (TimeSpan.Zero, rb.Duration, "Duration");

			Assert.AreEqual (TimeSpan.Zero.ToString (), rb.ToString (), "ToString");

			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (new TimeSpan (-1));
			}, "Negative");
			Assert.Throws<ArgumentOutOfRangeException> (delegate {
				rb = new RepeatBehavior (TimeSpan.MinValue);
			}, "MinValue");

			rb = new RepeatBehavior (TimeSpan.MaxValue);
			Assert.IsFalse (rb.HasCount, "HasCount-Max");
			Assert.IsTrue (rb.HasDuration, "HasDuration-Max");
			Assert.AreEqual (TimeSpan.MaxValue, rb.Duration, "Duration");
			Assert.AreEqual ("10675199.02:48:05.4775807", rb.ToString (), "ToString");
			Assert.IsFalse (rb.Equals (RepeatBehavior.Forever), "Max!=Forever");
		}
예제 #4
0
		public void RepeatBehaviorDurationToStringIFormatProvider ()
		{
			RepeatBehavior rb = new RepeatBehavior (TimeSpan.MaxValue);
			RepeatBehaviorFormatter.CallCount = 0;
			Assert.AreEqual ("10675199.02:48:05.4775807", rb.ToString (null), "null");
			Assert.AreEqual (0, RepeatBehaviorFormatter.CallCount, "CallCount-a");
			Assert.AreEqual ("10675199.02:48:05.4775807", rb.ToString (new RepeatBehaviorFormatter ()), "RepeatBehaviorFormatter");
			// unused
			Assert.AreEqual (0, RepeatBehaviorFormatter.CallCount, "CallCount");
		}
예제 #5
0
		public void RepeatBehaviorCountToStringIFormatProvider ()
		{
			RepeatBehavior rb = new RepeatBehavior (2);
			RepeatBehaviorFormatter.CallCount = 0;
			Assert.AreEqual ("2x", rb.ToString (null), "null");
			Assert.AreEqual (0, RepeatBehaviorFormatter.CallCount, "CallCount-a");
			Assert.AreEqual ("[2]x", rb.ToString (new RepeatBehaviorFormatter ()), "RepeatBehaviorFormatter");
			// 1 time: one per double (1), no call for 'x'
			Assert.AreEqual (1, RepeatBehaviorFormatter.CallCount, "CallCount");
		}