コード例 #1
0
        public void Name()
        {
            var name = Guid.NewGuid().ToString();
            var i    = new InitializeSubscription(conn, "fake", name);

            Assert.AreEqual(name, i.Name);
        }
コード例 #2
0
        public async Task Delete()
        {
            var random = new Random();
            var topic  = string.Format("a{0}b", random.Next());
            var sub    = string.Format("a{0}b", random.Next());
            var client = Substitute.For <IBusManagementClient>();

            var init = new InitializeSubscription(client, topic, sub);
            await init.Delete();

            await client.Received().SubscriptionDelete(topic, sub);
        }
コード例 #3
0
        public async Task CreateExists()
        {
            var random = new Random();
            var topic  = string.Format("a{0}b", random.Next());
            var sub    = string.Format("a{0}b", random.Next());
            var client = Substitute.For <IBusManagementClient>();

            client.SubscriptionExists(topic, sub).Returns(true);

            var init = new InitializeSubscription(client, topic, sub);
            var e    = await init.CreateIfNotExists();

            Assert.IsTrue(e);
            await client.Received().SubscriptionExists(topic, sub);

            await client.DidNotReceive().SubscriptionCreate(topic, sub);
        }
コード例 #4
0
        public void RegisterHandler <TArgs>(
            ScreenLifecycleEvent <TArgs> @event,
            Action <TArgs> handler,
            ExecutionOrder order = ExecutionOrder.Default
            ) where TArgs : ScreenEventArgs
        {
            IEventSubscription sub;
            bool isInitializeWithoutSubject = typeof(TArgs) == typeof(InitializeEventArgs);
            bool isInitializeWithSubject    = typeof(InitializeEventArgs).IsAssignableFrom(typeof(TArgs));

            if (isInitializeWithoutSubject)
            {
                sub = new InitializeSubscription(
                    @event,
                    order,
                    (Action <InitializeEventArgs>)handler
                    );
            }
            else if (isInitializeWithSubject)
            {
                Type subjectType = typeof(TArgs)
                                   .GetGenericArguments()
                                   .Single();

                Type subscriptionType = typeof(InitializeSubscription <>)
                                        .MakeGenericType(subjectType);

                sub = (IEventSubscription)Activator.CreateInstance(
                    subscriptionType,
                    @event,
                    order,
                    handler
                    );
            }
            else
            {
                sub = new EventSubscription <TArgs>(
                    @event,
                    handler,
                    order
                    );
            }

            _handlers.Add(sub);
        }