예제 #1
0
        public void When_AddVideo_is_called_with_a_new_Video_then_UploadVideo_on_the_VideoAdapter_is_called_with_that_Video_and_the_stored_VideoAdapterSettings()
        {
            var          photo    = new MemoryStream();
            const string fileName = "photo.jpg";
            const string photoId  = "http://www.photos.com/myphoto";
            var          entity   = AdapterSettingsCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(entity)
            .Repeat.Once();
            BandRepository.Replay();

            VideoAdapter
            .Expect(adapter =>
                    adapter.UploadItem(photo, entity.SetName, fileName, entity.OAuthAccessToken))
            .Return(photoId)
            .Repeat.Once();
            VideoAdapter.Replay();

            var result = Process.AddVideo(photo, fileName);

            Assert.AreEqual(photoId, result);

            VideoAdapter.VerifyAllExpectations();
        }
예제 #2
0
        public void When_AddPhoto_is_called_with_a_new_Photo_then_GetPhotoAdapterSettings_on_the_BandRepository_is_called()
        {
            var          photo    = new MemoryStream();
            const string fileName = "photo.jpg";
            const string photoUrl = "http://www.photos.com/myphoto";
            var          entity   = AdapterSettingsCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(entity)
            .Repeat.Once();
            BandRepository.Replay();

            PhotoAdapter
            .Expect(adapter =>
                    adapter.UploadItem(photo, entity.SetName, fileName, entity.OAuthAccessToken))
            .Return(photoUrl)
            .Repeat.Once();
            PhotoAdapter.Replay();

            Process.AddPhoto(photo, fileName);

            BandRepository.VerifyAllExpectations();
        }
예제 #3
0
        public void When_AddPhoto_is_called_and_no_PhotoAdapterSettings_have_been_stored_then_an_InvalidOperationException_is_thrown_and_UploadPhoto_on_the_PhotoAdapter_is_never_called()
        {
            var adapterSettings = AdapterSettingsCreator.CreateSingle();

            adapterSettings.OAuthAccessToken  = null;
            adapterSettings.OAuthRequestToken = null;

            var          photo    = new MemoryStream();
            const string fileName = "photo.jpg";

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Throw(new InvalidOperationException())
            .Repeat.Once();
            BandRepository
            .Expect(repository =>
                    repository.AddAdapterSettings(Arg <AdapterSettings> .Is.Anything))
            .Return(adapterSettings)
            .Repeat.Once();
            BandRepository.Replay();

            PhotoAdapter
            .Expect(adapter =>
                    adapter.UploadItem(null, null, null, null))
            .IgnoreArguments()
            .Return("")
            .Repeat.Never();
            PhotoAdapter.Replay();

            Process.AddPhoto(photo, fileName);

            PhotoAdapter.VerifyAllExpectations();
        }
예제 #4
0
        public void When_GetVideo_is_called_with_a_new_Video_and_an_empty_string_for_setName_then_UploadVideo_on_the_VideoAdapter_is_called_with_that_Video_and_the_stored_VideoAdapterSettings()
        {
            var tracks = VideoCreator.CreateCollection();
            var entity = AdapterSettingsCreator.CreateSingle();

            entity.SetName = string.Empty;

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(entity)
            .Repeat.Once();
            BandRepository.Replay();

            VideoAdapter
            .Expect(adapter =>
                    adapter.GetItems(entity.SetName, entity.OAuthAccessToken))
            .Return(tracks)
            .Repeat.Once();
            VideoAdapter.Replay();

            var result = Process.GetVideos();

            Assert.AreEqual(tracks.Count(), result.Count());
            Assert.AreEqual(tracks.First().ResourceUri, result.First().ResourceUri);

            VideoAdapter.VerifyAllExpectations();
        }
예제 #5
0
        public void When_AddVideo_is_called_and_no_OAuthAccessToken_has_been_stored_then_an_InvalidOperationException_is_thrown_and_UploadVideo_on_the_VideoAdapter_is_never_called()
        {
            var          photo    = new MemoryStream();
            const string fileName = "photo.jpg";
            var          entity   = AdapterSettingsCreator.CreateSingle();

            entity.OAuthAccessToken = null;

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(entity)
            .Repeat.Once();
            BandRepository.Replay();

            VideoAdapter
            .Expect(adapter =>
                    adapter.UploadItem(null, null, null, null))
            .IgnoreArguments()
            .Return("")
            .Repeat.Never();
            VideoAdapter.Replay();

            Process.AddVideo(photo, fileName);

            VideoAdapter.VerifyAllExpectations();
        }
예제 #6
0
        public void When_GetPhotos_is_called_then_GetPhotoAdapterSettings_on_the_BandRepository_is_called()
        {
            var photos   = PhotoCreator.CreateCollection();
            var settings = AdapterSettingsCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(settings)
            .Repeat.Once();
            BandRepository.Replay();

            PhotoAdapter
            .Expect(adapter =>
                    adapter.GetItems(settings.SetName, settings.OAuthAccessToken))
            .Return(photos)
            .Repeat.Once();
            PhotoAdapter.Replay();

            var result = Process.GetPhotos();

            Assert.AreEqual(photos.Count(), result.Count());
            Assert.AreEqual(photos.First(), result.First());
            BandRepository.VerifyAllExpectations();
        }
예제 #7
0
        public void When_GetVideo_is_called_and_no_OAuthAccessToken_has_been_stored_then_an_InvalidOperationException_is_thrown_and_GetVideo_on_the_VideoAdapter_is_never_called()
        {
            var photoAdapterSettings = AdapterSettingsCreator.CreateSingle();

            photoAdapterSettings.OAuthAccessToken = null;

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(photoAdapterSettings)
            .Repeat.Once();
            BandRepository.Replay();

            VideoAdapter
            .Expect(adapter =>
                    adapter.GetItems(null, null))
            .IgnoreArguments()
            .Return(new List <Video>())
            .Repeat.Never();
            VideoAdapter.Replay();

            Process.GetVideos(0, 10);

            VideoAdapter.VerifyAllExpectations();
        }
예제 #8
0
        public void When_GetAudioTracks_is_called_with_a_new_Audio_then_GetItems_on_the_AudioAdapter_is_called_with_that_Audio_and_the_stored_AudioAdapterSettings()
        {
            var tracks = AudioTrackCreator.CreateCollection();
            var entity = AdapterSettingsCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(entity)
            .Repeat.Once();
            BandRepository.Replay();

            AudioAdapter
            .Expect(adapter =>
                    adapter.GetItems(entity.SetName, entity.OAuthAccessToken))
            .Return(tracks)
            .Repeat.Once();
            AudioAdapter.Replay();

            var results = Process.GetAudioTracks();

            Assert.AreEqual(tracks.Count(), results.Count());
            Assert.AreEqual(tracks.First().ResourceUri, results.First().ResourceUri);

            AudioAdapter.VerifyAllExpectations();
        }
예제 #9
0
        public void When_GetPhotos_is_called_and_no_PhotoAdapterSettings_have_been_stored_then_an_AuthorizationException_is_thrown_and_GetPhotos_on_the_PhotoAdapter_is_never_called()
        {
            var adapterSettings = AdapterSettingsCreator.CreateSingle();

            adapterSettings.OAuthAccessToken  = null;
            adapterSettings.OAuthRequestToken = null;

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Throw(new InvalidOperationException())
            .Repeat.Once();
            BandRepository
            .Expect(repository =>
                    repository.AddAdapterSettings(Arg <AdapterSettings> .Is.Anything))
            .Return(adapterSettings)
            .Repeat.Once();
            BandRepository.Replay();

            PhotoAdapter
            .Expect(adapter =>
                    adapter.GetItems(null, null))
            .IgnoreArguments()
            .Repeat.Never();
            PhotoAdapter.Replay();

            Process.GetPhotos();

            PhotoAdapter.VerifyAllExpectations();
        }
예제 #10
0
        /// <summary>
        /// Edits a musician; this is not the most efficient way to edit a record; just demonstrating the repository in action.
        /// </summary>
        static void EditMusician()
        {
            using (var db = new DB_Bands())
            {
                var musicianRepo = new MusicianRepository(db);
                var bandRepo     = new BandRepository(db);
                var random       = new Random();
                var bands        = bandRepo.GetAll();
                var musicians    = musicianRepo.GetAll();
                var mi           = random.Next(0, musicians.Count);
                var bi           = random.Next(0, bands.Count);

                var musicianId     = musicians[mi].MusicianId;
                var bandId         = bands[bi].BandId;
                var randomMusician = musicianRepo.GetById(musicianId);
                var randomBand     = bandRepo.GetById(bandId);

                if (randomMusician.Band != null && randomMusician.Band.Name.Equals(randomBand.Name))
                {
                    Console.WriteLine("Selected " + randomMusician.Name + " and " + randomBand.Name + ". No Edit was made. Please try again.");
                    Console.WriteLine("");
                    return;
                }

                randomMusician.Band = randomBand;
                musicianRepo.Save();
                Console.WriteLine("Edited: " + randomMusician.Name + " - New band: " + randomMusician.Band.Name);
            }
            Console.WriteLine("");
        }
예제 #11
0
        public void RemoveBlogArticle(BlogArticle article)
        {
            if (article == null)
            {
                throw new ArgumentNullException("article");
            }

            BandRepository.RemoveBlogArticle(article);
        }
예제 #12
0
        public Performance UpdatePerformance(Performance performance)
        {
            if (performance == null)
            {
                throw new ArgumentNullException("performance");
            }

            return(BandRepository.UpdatePerformance(performance));
        }
예제 #13
0
        public BlogArticle GetBlogArticle(Guid id)
        {
            if (id == Guid.Empty)
            {
                throw new ArgumentNullException("id");
            }

            return(BandRepository.GetBlogArticle(id));
        }
예제 #14
0
        public Performance GetPerformance(Guid id)
        {
            if (id == Guid.Empty)
            {
                throw new ArgumentNullException("id");
            }

            return(BandRepository.GetPerformance(id));
        }
예제 #15
0
        public AdapterSettings UpdateAdapterSettings(AdapterSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            return(BandRepository.UpdateAdapterSettings(settings));
        }
예제 #16
0
        public void When_UpdateAudioAdapterSettings_is_called_with_null_as_parameter_then_an_ArgumentNullException_is_thrown_and_UpdateAudioAdapterSettings_on_the_BandRepository_is_never_called()
        {
            BandRepository
            .Expect(repository =>
                    repository.UpdateAdapterSettings(Arg <AdapterSettings> .Is.Anything))
            .Repeat.Never();

            Process.UpdateAdapterSettings(null);
        }
예제 #17
0
        public void RemovePerformance(Performance performance)
        {
            if (performance == null)
            {
                throw new ArgumentNullException("performance");
            }

            BandRepository.RemovePerformance(performance);
        }
예제 #18
0
        public BlogArticle UpdateBlogArticle(BlogArticle article)
        {
            if (article == null)
            {
                throw new ArgumentNullException("article");
            }

            return(BandRepository.UpdateBlogArticle(article));
        }
예제 #19
0
        public User GetUser(Guid id)
        {
            if (id == Guid.Empty)
            {
                throw new ArgumentNullException("id");
            }

            return(BandRepository.GetUser(id));
        }
예제 #20
0
        public void When_RemoveBlogArticle_is_called_with_a_null_value_for_BlogArticle_then_an_ArgumentNullException_is_thrown()
        {
            BandRepository
            .Expect(repository =>
                    repository.RemoveBlogArticle(null))
            .Repeat.Never();
            BandRepository.Replay();

            Process.RemoveBlogArticle(null);

            BandRepository.VerifyAllExpectations();
        }
예제 #21
0
 public AdapterSettings GetAdapterSettings()
 {
     try
     {
         return(BandRepository.GetAdapterSettings(AdapterName));
     }
     catch (InvalidOperationException)
     {
         return(BandRepository.AddAdapterSettings(new AdapterSettings {
             AdapterName = AdapterName
         }));
     }
 }
예제 #22
0
 static void PrintBands()
 {
     Console.WriteLine("Bands are ...");
     using (var db = new DB_Bands())
     {
         var repo = new BandRepository(db);
         foreach (var band in repo.GetAll())
         {
             Console.WriteLine("Name: " + band.Name);
         }
     }
     Console.WriteLine("");
 }
예제 #23
0
        public void When_RemoveBlogArticle_is_called_with_a_new_BlogArticle_then_RemoveBlogArticle_on_the_BandRepository_is_called_with_that_BlogArticle()
        {
            var article = BlogArticleCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.RemoveBlogArticle(article))
            .Repeat.Once();
            BandRepository.Replay();

            Process.RemoveBlogArticle(article);

            BandRepository.VerifyAllExpectations();
        }
예제 #24
0
        public void When_RemovePerformance_is_called_with_a_Performance_then_RemovePerformance_on_the_BandRepository_is_called_with_that_Performance()
        {
            var performance = PerformanceCreator.CreateSingleFuture();

            BandRepository
            .Expect(repository =>
                    repository.RemovePerformance(performance))
            .Repeat.Once();
            BandRepository.Replay();

            Process.RemovePerformance(performance);

            BandRepository.VerifyAllExpectations();
        }
예제 #25
0
        public void When_GetUser_is_called_with_a_valid_Guid_then_GetUser_on_the_BandRepository_is_called_with_that_Guid()
        {
            var user = UserCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetUser(user.Id))
            .Return(user)
            .Repeat.Once();
            BandRepository.Replay();

            Process.GetUser(user.Id);

            BandRepository.VerifyAllExpectations();
        }
예제 #26
0
        public void When_GetPerformance_is_called_with_a_valid_Guid_then_GetPerformance_on_the_BandRepository_is_called_with_that_Guid()
        {
            var performance = PerformanceCreator.CreateSingleFuture();

            BandRepository
            .Expect(repository =>
                    repository.GetPerformance(performance.Id))
            .Return(performance)
            .Repeat.Once();
            BandRepository.Replay();

            Process.GetPerformance(performance.Id);

            BandRepository.VerifyAllExpectations();
        }
예제 #27
0
        public void When_GetBlogArticle_is_called_with_a_valid_Guid_then_GetBlogArticle_on_the_BandRepository_is_called_with_that_Guid()
        {
            var article = BlogArticleCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetBlogArticle(article.Id))
            .Return(article)
            .Repeat.Once();
            BandRepository.Replay();

            Process.GetBlogArticle(article.Id);

            BandRepository.VerifyAllExpectations();
        }
        public void When_GetAudioAdapterSettings_is_called_then_GetAudioAdapterSettings_on_the_BandRepository_is_called()
        {
            var adapterSettings = AdapterSettingsCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.GetAdapterSettings(Arg <string> .Is.Anything))
            .Return(adapterSettings)
            .Repeat.Once();
            BandRepository.Replay();

            var result = Process.GetAdapterSettings();

            Assert.AreEqual(adapterSettings, result);

            BandRepository.VerifyAllExpectations();
        }
예제 #29
0
        public void When_UpdateVideoAdapterSettings_is_called_then_UpdateVideoAdapterSettings_on_the_BandRepository_is_called()
        {
            var adapterSettings = AdapterSettingsCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.UpdateAdapterSettings(adapterSettings))
            .Return(adapterSettings)
            .Repeat.Once();
            BandRepository.Replay();

            var result = Process.UpdateAdapterSettings(adapterSettings);

            Assert.AreEqual(adapterSettings, result);

            BandRepository.VerifyAllExpectations();
        }
예제 #30
0
        public void When_UpdateUser_is_called_with_a_valid_User_then_UpdateUser_on_the_BandRepository_is_called_with_that_User()
        {
            var user = UserCreator.CreateSingle();

            BandRepository
            .Expect(repository =>
                    repository.UpdateUser(user))
            .Return(user)
            .Repeat.Once();
            BandRepository.Replay();

            var result = Process.UpdateUser(user);

            Assert.AreEqual(user.Id, result.Id);

            BandRepository.VerifyAllExpectations();
        }
예제 #31
0
        protected override void AdditionalSetup()
        {
            base.AdditionalSetup();

            Repository = new BandRepository(CatalogsContainer);
        }