Exemplo n.º 1
0
        public void DeleteByGuid()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping         =
                new RedirectMapping
            {
                Guid         = Guid.NewGuid(),
                Uri          = new Uri("http://www.silkveil.net"),
                RedirectType = RedirectType.Permanent
            };

            int count = 0;

            redirectMappingProvider.MappingsAvailable += r =>
            {
                Assert.That(r.Count(), Is.EqualTo(0));
                count++;
            };

            redirectMappingProvider.Create(redirectMapping);
            redirectMappingProvider.Delete(redirectMapping.Guid);
            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
        public SilkveilContainerTests()
        {
            var containerBuilder = new ContainerBuilder();
            containerBuilder.Register(typeof(IContainerBinder), typeof(ContainerBinder));
            containerBuilder.Register(typeof(IRequestListener), typeof(DownloadRequestListener));
            containerBuilder.Register(typeof(IRequestListener), typeof(RedirectRequestListener));
            containerBuilder.Register(typeof(IMappingResolver<IDownloadMapping>), typeof(DownloadMappingResolver));
            containerBuilder.Register(typeof(IMappingResolver<IRedirectMapping>), typeof(RedirectMappingResolver));
            containerBuilder.Register<IMappingProvider<IDownloadMapping>>(
                c =>
                {
                    var downloadMappingProvider = new DownloadMappingProvider(c);
                    downloadMappingProvider.Initialize();
                    return downloadMappingProvider;
                });
            containerBuilder.Register<IMappingProvider<IRedirectMapping>>(
                c =>
                {
                    var redirectMappingProvider = new RedirectMappingProvider(c);
                    redirectMappingProvider.Initialize();
                    return redirectMappingProvider;
                });
            containerBuilder.Register(typeof(IContentSource), typeof(HttpContentSource));
            containerBuilder.Register(typeof(IContentSource), typeof(FileContentSource));
            containerBuilder.Register(typeof(IStreamSplitter), typeof(StreamSplitter));
            containerBuilder.Register(typeof(IHttpStreamFactory), typeof(HttpStreamFactory));
            containerBuilder.Register(typeof(ISilkveilContainer), typeof(SilkveilContainer));

            containerBuilder.Register(typeof(IDownloadMapping), typeof(DownloadMapping));
            containerBuilder.Register(typeof(IRedirectMapping), typeof(RedirectMapping));

            this._container = containerBuilder.Build();
        }
Exemplo n.º 3
0
        public void ReadAllReturnsNonEmptyCollectionAfterCreate()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping         =
                new RedirectMapping
            {
                Guid         = Guid.NewGuid(),
                Uri          = new Uri("http://www.silkveil.net"),
                RedirectType = RedirectType.Permanent
            };

            int count = 0;

            redirectMappingProvider.MappingsAvailable += r =>
            {
                Assert.That(r, Is.InstanceOf(typeof(IEnumerable <IRedirectMapping>)));
                Assert.That(r.Count(), Is.EqualTo(1));

                Assert.That(r.First().Guid, Is.EqualTo(redirectMapping.Guid));
                Assert.That(r.First().Uri, Is.EqualTo(redirectMapping.Uri));
                Assert.That(r.First().RedirectType, Is.EqualTo(redirectMapping.RedirectType));

                count++;
            };

            redirectMappingProvider.Create(redirectMapping);
            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
        public SilkveilContainerTests()
        {
            var containerBuilder = new ContainerBuilder();

            containerBuilder.Register(typeof(IContainerBinder), typeof(ContainerBinder));
            containerBuilder.Register(typeof(IRequestListener), typeof(DownloadRequestListener));
            containerBuilder.Register(typeof(IRequestListener), typeof(RedirectRequestListener));
            containerBuilder.Register(typeof(IMappingResolver <IDownloadMapping>), typeof(DownloadMappingResolver));
            containerBuilder.Register(typeof(IMappingResolver <IRedirectMapping>), typeof(RedirectMappingResolver));
            containerBuilder.Register <IMappingProvider <IDownloadMapping> >(
                c =>
            {
                var downloadMappingProvider = new DownloadMappingProvider(c);
                downloadMappingProvider.Initialize();
                return(downloadMappingProvider);
            });
            containerBuilder.Register <IMappingProvider <IRedirectMapping> >(
                c =>
            {
                var redirectMappingProvider = new RedirectMappingProvider(c);
                redirectMappingProvider.Initialize();
                return(redirectMappingProvider);
            });
            containerBuilder.Register(typeof(IContentSource), typeof(HttpContentSource));
            containerBuilder.Register(typeof(IContentSource), typeof(FileContentSource));
            containerBuilder.Register(typeof(IStreamSplitter), typeof(StreamSplitter));
            containerBuilder.Register(typeof(IHttpStreamFactory), typeof(HttpStreamFactory));
            containerBuilder.Register(typeof(ISilkveilContainer), typeof(SilkveilContainer));

            containerBuilder.Register(typeof(IDownloadMapping), typeof(DownloadMapping));
            containerBuilder.Register(typeof(IRedirectMapping), typeof(RedirectMapping));

            this._container = containerBuilder.Build();
        }
Exemplo n.º 5
0
        public void Update()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping         =
                new RedirectMapping
            {
                Guid         = Guid.NewGuid(),
                Uri          = new Uri("http://www.google.de"),
                RedirectType = RedirectType.Temporary
            };

            int count = 0;

            redirectMappingProvider.MappingAvailable += r =>
            {
                Assert.That(r.Uri, Is.EqualTo(redirectMapping.Uri));
                Assert.That(r.RedirectType, Is.EqualTo(redirectMapping.RedirectType));
                count++;
            };

            redirectMappingProvider.Create(redirectMapping);

            redirectMapping.Uri          = new Uri("http://www.silkveil.net");
            redirectMapping.RedirectType = RedirectType.Permanent;
            redirectMappingProvider.Update(redirectMapping);
            redirectMappingProvider.ReadById(redirectMapping.Guid);

            Assert.That(count, Is.EqualTo(1));
        }
Exemplo n.º 6
0
        public void DeleteNonExistentMapping()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            Assert.That(() => redirectMappingProvider.Delete(Guid.NewGuid()),
                        Throws.Exception.TypeOf(typeof(MappingNotFoundException)));
        }
Exemplo n.º 7
0
        public void UpdateNonExistentMapping()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping         =
                new RedirectMapping
            {
                Guid         = Guid.NewGuid(),
                Uri          = new Uri("http://www.silkveil.net"),
                RedirectType = RedirectType.Permanent
            };

            Assert.That(() => redirectMappingProvider.Update(redirectMapping),
                        Throws.Exception.TypeOf(typeof(MappingNotFoundException)));
        }
Exemplo n.º 8
0
        public void CreateAlreadyExistingItemResultsInException()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping         =
                new RedirectMapping
            {
                Guid         = Guid.NewGuid(),
                Uri          = new Uri("http://www.silkveil.net"),
                RedirectType = RedirectType.Permanent
            };

            redirectMappingProvider.Create(redirectMapping);

            Assert.That(() => redirectMappingProvider.Create(redirectMapping), Throws.Exception.TypeOf(typeof(DuplicateMappingException)));
        }
        public void CreateAlreadyExistingItemResultsInException()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping =
                new RedirectMapping
                {
                    Guid = Guid.NewGuid(),
                    Uri = new Uri("http://www.silkveil.net"),
                    RedirectType = RedirectType.Permanent
                };

            redirectMappingProvider.Create(redirectMapping);

            Assert.That(() => redirectMappingProvider.Create(redirectMapping), Throws.Exception.TypeOf(typeof(DuplicateMappingException)));
        }
Exemplo n.º 10
0
        public void ReadAllReturnsEmptyCollection()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            int count = 0;

            redirectMappingProvider.MappingsAvailable += d =>
            {
                Assert.That(d, Is.InstanceOf(typeof(IEnumerable <IRedirectMapping>)));
                Assert.That(d.Count(), Is.EqualTo(0));
                count++;
            };

            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
Exemplo n.º 11
0
        public void InitializeCreatesMappingForSilkveilWebsite()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            int count = 0;

            redirectMappingProvider.MappingsAvailable += r =>
            {
                Assert.That(r.Count(), Is.EqualTo(1));
                Assert.That(r.First().Guid, Is.EqualTo(Guid.Empty));
                Assert.That(r.First().Uri, Is.EqualTo(new Uri("http://www.silkveil.net")));
                Assert.That(r.First().RedirectType, Is.EqualTo(RedirectType.Permanent));
                count++;
            };

            redirectMappingProvider.Initialize();
            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
        public void DeleteByMapping()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping =
                new RedirectMapping
                {
                    Guid = Guid.NewGuid(),
                    Uri = new Uri("http://www.silkveil.net"),
                    RedirectType = RedirectType.Permanent
                };

            int count = 0;
            redirectMappingProvider.MappingsAvailable += r =>
            {
                Assert.That(r.Count(), Is.EqualTo(0));
                count++;
            };

            redirectMappingProvider.Create(redirectMapping);
            redirectMappingProvider.Delete(redirectMapping);
            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
Exemplo n.º 13
0
        public void IsRunForTheFirstTime()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            Assert.That(redirectMappingProvider.IsRunForTheFirstTime, Is.EqualTo(true));
        }
        public void ReadAllReturnsNonEmptyCollectionAfterCreate()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping =
                new RedirectMapping
                    {
                        Guid = Guid.NewGuid(),
                        Uri = new Uri("http://www.silkveil.net"),
                        RedirectType = RedirectType.Permanent
                    };

            int count = 0;
            redirectMappingProvider.MappingsAvailable += r =>
            {
                Assert.That(r, Is.InstanceOf(typeof(IEnumerable<IRedirectMapping>)));
                Assert.That(r.Count(), Is.EqualTo(1));

                Assert.That(r.First().Guid, Is.EqualTo(redirectMapping.Guid));
                Assert.That(r.First().Uri, Is.EqualTo(redirectMapping.Uri));
                Assert.That(r.First().RedirectType, Is.EqualTo(redirectMapping.RedirectType));

                count++;
            };

            redirectMappingProvider.Create(redirectMapping);
            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
        public void IsRunForTheFirstTime()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            Assert.That(redirectMappingProvider.IsRunForTheFirstTime, Is.EqualTo(true));
        }
        public void DeleteNonExistentMapping()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            Assert.That(() => redirectMappingProvider.Delete(Guid.NewGuid()),
                        Throws.Exception.TypeOf(typeof(MappingNotFoundException)));
        }
        public void UpdateNonExistentMapping()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping =
                new RedirectMapping
                {
                    Guid = Guid.NewGuid(),
                    Uri = new Uri("http://www.silkveil.net"),
                    RedirectType = RedirectType.Permanent
                };

            Assert.That(() => redirectMappingProvider.Update(redirectMapping),
                        Throws.Exception.TypeOf(typeof(MappingNotFoundException)));
        }
        public void Update()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);
            var redirectMapping =
                new RedirectMapping
                {
                    Guid = Guid.NewGuid(),
                    Uri = new Uri("http://www.google.de"),
                    RedirectType = RedirectType.Temporary
                };

            int count = 0;
            redirectMappingProvider.MappingAvailable += r =>
            {
                Assert.That(r.Uri, Is.EqualTo(redirectMapping.Uri));
                Assert.That(r.RedirectType, Is.EqualTo(redirectMapping.RedirectType));
                count++;
            };

            redirectMappingProvider.Create(redirectMapping);

            redirectMapping.Uri = new Uri("http://www.silkveil.net");
            redirectMapping.RedirectType = RedirectType.Permanent;
            redirectMappingProvider.Update(redirectMapping);
            redirectMappingProvider.ReadById(redirectMapping.Guid);

            Assert.That(count, Is.EqualTo(1));
        }
        public void InitializeCreatesMappingForSilkveilWebsite()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            int count = 0;
            redirectMappingProvider.MappingsAvailable += r =>
                                                     {
                                                         Assert.That(r.Count(), Is.EqualTo(1));
                                                         Assert.That(r.First().Guid, Is.EqualTo(Guid.Empty));
                                                         Assert.That(r.First().Uri, Is.EqualTo(new Uri("http://www.silkveil.net")));
                                                         Assert.That(r.First().RedirectType, Is.EqualTo(RedirectType.Permanent));
                                                         count++;
                                                     };

            redirectMappingProvider.Initialize();
            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }
        public void ReadAllReturnsEmptyCollection()
        {
            var redirectMappingProvider = new RedirectMappingProvider(this._container);

            int count = 0;
            redirectMappingProvider.MappingsAvailable += d =>
                                                     {
                                                         Assert.That(d, Is.InstanceOf(typeof(IEnumerable<IRedirectMapping>)));
                                                         Assert.That(d.Count(), Is.EqualTo(0));
                                                         count++;
                                                     };

            redirectMappingProvider.ReadAll();

            Assert.That(count, Is.EqualTo(1));
        }