Inheritance: Dev2.Webs.Callbacks.SourceCallbackHandler
        public void SourceCallbackHandlerSaveWithValidArgsExpectedPublishesUpdateResourceMessage()
        {
            const string ResourceName = "TestSource";
            Guid resourceId = Guid.NewGuid();

            var resourceModel = new Mock<IResourceModel>();
            resourceModel.Setup(r => r.ResourceName).Returns(ResourceName);

            var resourceRepo = new Mock<IResourceRepository>();
            resourceRepo.Setup(r => r.ReloadResource(It.IsAny<Guid>(), It.IsAny<ResourceType>(), It.IsAny<IEqualityComparer<IResourceModel>>(), true))
                        .Returns(new List<IResourceModel> { resourceModel.Object });

            var envModel = new Mock<IEnvironmentModel>();
            envModel.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object);

            var aggregator = new Mock<IEventAggregator>();
            EventPublishers.Aggregator = aggregator.Object;
            var envRepo = new Mock<IEnvironmentRepository>();
            var handler = new SourceCallbackHandlerMock(aggregator.Object, envRepo.Object);

            aggregator.Setup(e => e.Publish(It.IsAny<UpdateResourceMessage>()))
                            .Callback<Object>(m =>
                            {
                                var msg = (UpdateResourceMessage)m;
                                Assert.AreEqual(ResourceName, msg.ResourceModel.ResourceName);
                            })
                             .Verifiable();

            var jsonObj = JObject.Parse("{ 'ResourceID': '" + resourceId + "'}");
            handler.TestSave(envModel.Object, jsonObj);

            aggregator.Verify(e => e.Publish(It.IsAny<UpdateResourceMessage>()), Times.Once());
        }
        public void SourceCallbackHandlerSaveWithValidArgsExpectedPublishesUpdateResourceMessage()
        {
            const string ResourceName = "TestSource";
            Guid         resourceId   = Guid.NewGuid();

            var resourceModel = new Mock <IResourceModel>();

            resourceModel.Setup(r => r.ResourceName).Returns(ResourceName);

            var resourceRepo = new Mock <IResourceRepository>();

            resourceRepo.Setup(r => r.ReloadResource(It.IsAny <Guid>(), It.IsAny <ResourceType>(), It.IsAny <IEqualityComparer <IResourceModel> >(), true))
            .Returns(new List <IResourceModel> {
                resourceModel.Object
            });

            var envModel = new Mock <IEnvironmentModel>();

            envModel.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object);

            var aggregator = new Mock <IEventAggregator>();

            EventPublishers.Aggregator = aggregator.Object;
            var envRepo = new Mock <IEnvironmentRepository>();
            var handler = new SourceCallbackHandlerMock(aggregator.Object, envRepo.Object);

            aggregator.Setup(e => e.Publish(It.IsAny <UpdateResourceMessage>()))
            .Callback <Object>(m =>
            {
                var msg = (UpdateResourceMessage)m;
                Assert.AreEqual(ResourceName, msg.ResourceModel.ResourceName);
            })
            .Verifiable();

            var jsonObj = JObject.Parse("{ 'ResourceID': '" + resourceId + "'}");

            handler.TestSave(envModel.Object, jsonObj);

            aggregator.Verify(e => e.Publish(It.IsAny <UpdateResourceMessage>()), Times.Once());
        }