public void AddTabAndModuleInfoProviderWorksForManyProviders()
        {
            //Arrange
            var configuration = new HttpConfiguration();

            //Act
            configuration.AddTabAndModuleInfoProvider(new StandardTabAndModuleInfoProvider());
            configuration.AddTabAndModuleInfoProvider(new StandardTabAndModuleInfoProvider());
            configuration.AddTabAndModuleInfoProvider(new StandardTabAndModuleInfoProvider());

            //Assert
            Assert.AreEqual(3, ((IEnumerable<ITabAndModuleInfoProvider>)configuration.Properties["TabAndModuleInfoProvider"]).Count());
        }
        public void FindModuleIdStopCallingProvidersAfterOneSuccess()
        {
            //Arrange
            var request = new HttpRequestMessage();
            var configuration = new HttpConfiguration();
            var provider = new Mock<ITabAndModuleInfoProvider>();
            int i;
            provider.Setup(x => x.TryFindModuleId(request, out i)).Returns(true);
            configuration.AddTabAndModuleInfoProvider(provider.Object);
            configuration.AddTabAndModuleInfoProvider(provider.Object);
            request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            //Act
            request.FindModuleId();

            //Assert
            provider.Verify(x => x.TryFindModuleId(request, out i), Times.Once());
        }
        public void FindModuleIdTriesAllProviders()
        {
            //Arrange
            var request = new HttpRequestMessage();
            var configuration = new HttpConfiguration();
            var provider = new Mock<ITabAndModuleInfoProvider>();
            int i;
            provider.Setup(x => x.TryFindModuleId(request, out i)).Returns(false);
            configuration.AddTabAndModuleInfoProvider(provider.Object);
            configuration.AddTabAndModuleInfoProvider(provider.Object);
            request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            //Act
            request.FindModuleId();

            //Assert
            provider.Verify(x => x.TryFindModuleId(request, out i), Times.Exactly(2));
        }
        public void GetsModuleInfoViaTheTabModuleInfoProviders()
        {
            //Arrange
            var request = new HttpRequestMessage();
            var configuration = new HttpConfiguration();
            var provider = new Mock<ITabAndModuleInfoProvider>();
            var expectedModule = new ModuleInfo();
            provider.Setup(x => x.TryFindModuleInfo(request, out expectedModule)).Returns(true);
            configuration.AddTabAndModuleInfoProvider(provider.Object);
            request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            var controller = new DnnApiControllerHelper {Request = request};

            //Act
            var result = controller.ActiveModule;

            //Assert
            Assert.AreEqual(expectedModule, result);
            provider.Verify(x => x.TryFindModuleInfo(request, out expectedModule), Times.Once());
        }