public void ValidGuid() { var guid = Guid.NewGuid(); var redirectMappingResolver = new RedirectMappingResolver(); int count = 0; redirectMappingResolver.MappingResolved += r => { Assert.That(r.Guid, Is.EqualTo(guid)); Assert.That(r.Uri, Is.EqualTo(new Uri("http://www.silkveil.net"))); count++; }; redirectMappingResolver.RequestMapping += g => { var redirectMapping = new RedirectMapping { Guid = guid, Uri = new Uri("http://www.silkveil.net") }; redirectMappingResolver.RequestedMappingAvailable(redirectMapping); }; redirectMappingResolver.ResolveGuid(guid); Assert.That(count, Is.EqualTo(1)); }
public void RedirectPermanently() { var httpStreamFactory = new HttpStreamFactory(); int count = 0; httpStreamFactory.StreamAvailable += s => { using (var streamReader = new StreamReader(s)) { Assert.That(streamReader.ReadLine(), Is.EqualTo("HTTP/1.1 301 Moved Permanently")); Assert.That(streamReader.ReadLine(), Is.EqualTo("Location: http://www.silkveil.net/")); } count++; }; var redirectMapping = new RedirectMapping { Guid = Guid.NewGuid(), Uri = new Uri("http://www.silkveil.net"), RedirectType = RedirectType.Permanent }; httpStreamFactory.CreateRedirect(redirectMapping); Assert.That(count, Is.EqualTo(1)); }
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 RedirectPermanentlyReturnsARewindedStream() { var httpStreamFactory = new HttpStreamFactory(); int count = 0; httpStreamFactory.StreamAvailable += s => { Assert.That(s.Position, Is.EqualTo(0)); count++; }; var redirectMapping = new RedirectMapping { Guid = Guid.NewGuid(), Uri = new Uri("http://www.silkveil.net"), RedirectType = RedirectType.Permanent }; httpStreamFactory.CreateRedirect(redirectMapping); 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)); }
public void RequestStatusCode() { var httpStreamFactory = new HttpStreamFactory(); httpStreamFactory.StreamAvailable += httpStreamFactory.RequestStatusCode; int count = 0; httpStreamFactory.StatusCodeAvailable += sc => { Assert.That(sc, Is.EqualTo(301)); count++; }; var redirectMapping = new RedirectMapping { Guid = Guid.NewGuid(), Uri = new Uri("http://www.silkveil.net"), RedirectType = RedirectType.Permanent }; httpStreamFactory.CreateRedirect(redirectMapping); Assert.That(count, Is.EqualTo(1)); }
public void RequestHeaders() { var httpStreamFactory = new HttpStreamFactory(); httpStreamFactory.StreamAvailable += httpStreamFactory.RequestHeaders; int count = 0; httpStreamFactory.HeadersAvailable += h => { Assert.That(h.Count, Is.EqualTo(1)); Assert.That(h["Location"], Is.EqualTo("http://www.silkveil.net/")); count++; }; var redirectMapping = new RedirectMapping { Guid = Guid.NewGuid(), Uri = new Uri("http://www.silkveil.net"), RedirectType = RedirectType.Permanent }; httpStreamFactory.CreateRedirect(redirectMapping); Assert.That(count, Is.EqualTo(1)); }
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 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)); }