public void Should_return_NotAvailable_on_exception()
 {
     _reader.Stub(x => x.Exists("")).IgnoreArguments().Throw(new IOException());
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Delete(new Artist { Id = 1 });
     Assert.That(operationResult.StatusCode, Is.EqualTo(405));
 }
 public void Should_return_NotFound_with_incorrect_artist()
 {
     _writer.Stub(x => x.DeleteFile(0)).IgnoreArguments().Throw(new FileNotFoundException());
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Delete(new Artist{Id=1});
     Assert.That(operationResult.StatusCode, Is.EqualTo(404));
 }
 public void Should_return_Created_on_successful_creation()
 {
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Post(new Artist { Id = 1, Genre = "r", Name = "r" });
     Assert.That(operationResult.StatusCode, Is.EqualTo(201));
     Assert.That(operationResult.RedirectLocation, Is.EqualTo(new Uri(_baseUrl + "artist/1")));
 }
 public void Should_return_NoContent_on_successful_delete()
 {
     _reader.Stub(x => x.Exists("")).IgnoreArguments().Return(true);
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Delete(new Artist { Id = 1 });
     Assert.That(operationResult.StatusCode, Is.EqualTo(204));
 }
 public void Should_return_InternalServerError_on_exception()
 {
     _reader.Stub(x => x.ReadFromFile(0)).IgnoreArguments().Throw(new Exception());
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Put(new Artist { Id = 1, Genre = "r", Name = "r" });
     Assert.That(operationResult.StatusCode, Is.EqualTo(500));
 }
 public void Get_should_return_NotFound_with_incorrect_artist()
 {
     _fileWrapper.Stub(x => x.FileExists("")).IgnoreArguments().Return(false);
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Get(new Artist { Id = 1 });
     Assert.That(operationResult.StatusCode, Is.EqualTo(404));
 }
 public void Get_should_return_InternalServerError_on_exception()
 {
     _fileWrapper.Stub(x => x.FileExists("")).IgnoreArguments().Throw(new Exception());
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Get(new Artist { Id = 1 });
     Assert.That(operationResult.StatusCode, Is.EqualTo(500));
 }
 public void Should_return_NoContent_on_successful_update()
 {
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var artist = new Artist { Id = 1, Genre = "r", Name = "r" };
     _reader.Stub(x => x.ReadFromFile(0)).IgnoreArguments().Return(artist);
     var operationResult = artistHandler.Put(artist);
     Assert.That(operationResult.StatusCode, Is.EqualTo(204));
 }
 public void Should_return_Found_if_resource_exists()
 {
     _writer.Stub(x => x.CreateFile(null)).IgnoreArguments().Throw(new ResourceExistsException(""));
     var artistHandler = new ArtistHandler(_writer, _reader, _operationOutput);
     var operationResult = artistHandler.Post(new Artist { Id = 1, Genre = "r", Name = "r" });
     Assert.That(operationResult.StatusCode, Is.EqualTo(302));
     Assert.That(operationResult.RedirectLocation, Is.EqualTo(new Uri(_baseUrl + "artist/1")));
 }
        public void Get_should_return_OK_if_found()
        {
            var reader = MockRepository.GenerateStub<IReader<Artist>>();
            reader.Stub(x => x.ReadFromFile(0)).IgnoreArguments().Return(new Artist());
            _fileWrapper.Stub(x => x.FileExists("")).IgnoreArguments().Return(true);

            var artistHandler = new ArtistHandler(_writer, reader, _operationOutput);
            var operationResult = artistHandler.Get(new Artist{Id=1});
            Assert.That(operationResult.StatusCode, Is.EqualTo(200));
        }
        public void Get_should_return_correct_artist_if_found()
        {
            var reader = MockRepository.GenerateStub<IReader<Artist>>();
            const string expected = "Meat Loaf";
            const string expectedGenre = "Rock";
            const int artistId = 1;
            reader.Stub(x => x.ReadFromFile(artistId)).IgnoreArguments().Return(new Artist { Id = artistId, Genre = expectedGenre, Name = expected });
            _fileWrapper.Stub(x => x.FileExists("")).IgnoreArguments().Return(true);

            var artistHandler = new ArtistHandler(_writer, reader, _operationOutput);
            var operationResult = artistHandler.Get(new Artist { Id = 1 });
            Assert.That(operationResult.StatusCode, Is.EqualTo(200));
            Assert.That(operationResult.ResponseResource, Is.Not.Null);
            Assert.That(((Artist)operationResult.ResponseResource).Name, Is.EqualTo(expected));
            Assert.That(((Artist)operationResult.ResponseResource).Id, Is.EqualTo(artistId));
            Assert.That(((Artist)operationResult.ResponseResource).Genre, Is.EqualTo(expectedGenre));
        }