public void RemoveAllSubscriptionRequest()
        {
            var subscriptionRequest  = GetSubscriptionRequest();
            var subscriptionRequest2 = GetSubscriptionRequest();
            var subscription         = new Subscription(
                subscriptionRequest,
                null,
                new TimeZoneOffsetProvider(DateTimeZone.Utc, _start, _end));

            subscription.AddSubscriptionRequest(subscriptionRequest2);
            Assert.AreEqual(2, subscription.Universes.Count());
            var emptySubscription = subscription.RemoveSubscriptionRequest();

            Assert.IsTrue(emptySubscription);
            Assert.IsFalse(subscription.Universes.Any());
        }
        public void AddSubscriptionRequestOncePerUniverse()
        {
            var subscriptionRequest = GetSubscriptionRequest();
            var subscription        = new Subscription(
                subscriptionRequest,
                null,
                new TimeZoneOffsetProvider(DateTimeZone.Utc, _start, _end));

            Assert.AreEqual(1, subscription.Universes.Count());
            Assert.AreEqual(subscriptionRequest.Universe, subscription.Universes.First());

            subscription.AddSubscriptionRequest(subscriptionRequest);

            Assert.AreEqual(1, subscription.Universes.Count());
            Assert.AreEqual(subscriptionRequest.Universe, subscription.Universes.First());
        }
        public void SubscriptionOnlyAcceptsSameConfiguration()
        {
            var subscriptionRequest  = GetSubscriptionRequest();
            var subscriptionRequest2 = GetSubscriptionRequest(resolution: Resolution.Second);
            var subscription         = new Subscription(
                subscriptionRequest,
                null,
                new TimeZoneOffsetProvider(DateTimeZone.Utc, _start, _end));

            try
            {
                subscription.AddSubscriptionRequest(subscriptionRequest2);
                Assert.Fail("Subscription should only accept the same configuration");
            }
            catch (Exception)
            {
                Assert.Pass();
            }
        }
        public void SubscriptionOnlyAcceptsOneUniverseSelection()
        {
            var subscriptionRequest  = GetSubscriptionRequest(true, true);
            var subscriptionRequest2 = GetSubscriptionRequest();
            var subscription         = new Subscription(
                subscriptionRequest,
                null,
                new TimeZoneOffsetProvider(DateTimeZone.Utc, _start, _end));

            try
            {
                subscription.AddSubscriptionRequest(subscriptionRequest2);
                Assert.Fail("Subscription should only accept one universe selection" +
                            " subscription request.");
            }
            catch (Exception)
            {
                Assert.Pass();
            }
        }