public async Task SongController_Destroy_ShouldReturnRedirectWithSuccessTempData()
        {
            //Arrenge
            string successMessage = null;
            int    songId         = 1;

            var songService = this.GetAdminSongServiceBaseMock();

            songService
            .Setup(s => s.DeleteAsync(It.IsAny <int>()))
            .ReturnsAsync(true);

            var tempDate = new Mock <ITempDataDictionary>();

            tempDate.SetupSet(t => t[WebConstants.TempDataSuccessMessageKey] = It.IsAny <string>())
            .Callback((string key, object message) => successMessage         = message as string);

            var controller = new SongsController(null, songService.Object);

            controller.TempData = tempDate.Object;

            //Act
            var result = await controller.Destroy(songId);

            //Assert
            successMessage.Should().Be("Song has been deleted successfully");

            result.Should().BeOfType <RedirectToActionResult>();
            result.As <RedirectToActionResult>().ActionName.Should().Be("ListAll");
        }
Ejemplo n.º 2
0
        public void Get_Songs_From_Moq()
        {
            var serviceMock = new Mock <ISongsService>();

            serviceMock.Setup(x => x.GetAll()).Returns(() => new List <Song> {
                new Song()
                {
                    Id        = new Guid("5DC85CE0-D978-4112-AC5D-9A30CE70F175"),
                    Title     = "Er zit meer in een liedje dan je denkt",
                    IsDeleted = false
                },
                new Song()
                {
                    Id        = new Guid("25A5C147-7F60-421C-8213-3FBCC6293A7D"),
                    Title     = "Er zit meer in een liedje dan je denkt",
                    IsDeleted = false
                },
                new Song()
                {
                    Id        = new Guid("C47F59CA-0007-4E16-93F5-93C5A5848209"),
                    Title     = "Er zit meer in een liedje dan je denkt",
                    IsDeleted = false
                }
            });

            var controller = new SongsController(serviceMock.Object);

            var result = _songsController.Get();

            Assert.IsType <OkObjectResult>(result);
        }
Ejemplo n.º 3
0
        public async Task ReturnViewWithoutModelWhenSongIsUploadedSuccessfully()
        {
            string expectedMessage = "successfully";

            var fileStub = new Mock <IFormFile>();

            fileStub.Setup(f => f.ContentType).Returns(() => "audio");
            fileStub.Setup(f => f.Length).Returns(() => SongMaxLength - 1);

            var uploadSongStub = new Mock <ICommandService <UploadSong> >();

            SongFormModel model = new SongFormModel()
            {
                File = fileStub.Object
            };

            // Arrange
            SongsController sut = CreateSongsController(
                uploadSong: uploadSongStub.Object);

            // Act
            var result = await sut.Upload(model) as WithMessageResult;

            var realAction = result.Action as ViewResult;

            // Assert
            Assert.IsNull(realAction.Model);
        }
Ejemplo n.º 4
0
 public SongsControllerTests()
 {
     _service = new Mock <ISongService>();
     _service.Setup(x => x.GetAllAsync()).ReturnsAsync(GetTestSongs());
     _service.Setup(x => x.GetAllAsync()).ReturnsAsync(GetTestSongs());
     _controller = new SongsController(_service.Object);
 }
Ejemplo n.º 5
0
        public async Task ReturnViewWithErrorMessageWhenCommandServiceThrowNotFoundException()
        {
            string expectedMessage = "Fake message";

            var fileStub = new Mock <IFormFile>();

            fileStub.Setup(f => f.ContentType).Returns(() => "audio");
            fileStub.Setup(f => f.Length).Returns(() => SongMaxLength - 1);

            var editSongStub = new Mock <ICommandService <EditSong> >();

            editSongStub.Setup(u => u.ExecuteAsync(It.IsAny <EditSong>()))
            .Throws(new NotFoundException(expectedMessage));

            SongFormModel model = new SongFormModel()
            {
                File = fileStub.Object
            };

            // Arrange
            SongsController sut = CreateSongsController(
                editSong: editSongStub.Object);

            // Act
            var result = await sut.Edit(It.IsAny <string>(), model) as WithMessageResult;

            // Assert
            Assert.AreEqual(typeof(WithMessageResult), result.GetType());
            Assert.AreEqual("danger", result.Type);
            Assert.AreEqual(expectedMessage, result.Message);
        }
Ejemplo n.º 6
0
        public async Task ReturnViewWithSuccessMessageWhenSongIsEditedSuccessfully()
        {
            string expectedMessage = "edited successfully";

            var fileStub = new Mock <IFormFile>();

            fileStub.Setup(f => f.ContentType).Returns(() => "audio");
            fileStub.Setup(f => f.Length).Returns(() => SongMaxLength - 1);

            var editSongMock = new Mock <ICommandService <EditSong> >();

            SongFormModel model = new SongFormModel()
            {
                File = fileStub.Object
            };

            // Arrange
            SongsController sut = CreateSongsController(
                editSong: editSongMock.Object);

            // Act
            var result = await sut.Edit(It.IsAny <string>(), model) as WithMessageResult;

            // Assert
            Assert.AreEqual(typeof(WithMessageResult), result.GetType());
            Assert.AreEqual("success", result.Type);
            StringAssert.Contains(expectedMessage, result.Message);
        }
Ejemplo n.º 7
0
        public void SongsGet()
        {
            var testSubject = new SongsController(_testRepo);
            var result      = testSubject.Get();

            Assert.IsTrue(result.Value.ToList().Count > 19);
        }
Ejemplo n.º 8
0
        public void SongsDelete()
        {
            var testSubject = new SongsController(_testRepo);
            var testObject  = _testRepo.Get(0);

            testSubject.Delete(testObject.Id);
            Assert.IsTrue(_testRepo.GetAll().Count < 20);
        }
        public SongsControllerTests()
        {
            _logger          = Substitute.For <ILogger <SongsController> >();
            _songService     = Substitute.For <ISong>();
            _fileStorage     = Substitute.For <IFileStorage>();
            _coreDataService = Substitute.For <ICoreData>();

            _songsController = new SongsController(_logger, _coreDataService, _fileStorage, _songService);
        }
Ejemplo n.º 10
0
        public void HaveRequiredAttribute(Type attrType)
        {
            // Arrange
            SongsController sut = CreateSongsController(Mock.Of <ICommandService <EditSong> >());

            // Act && Assert
            Assert.IsTrue(MethodHasAttribute(
                              () => sut.Edit(It.IsAny <string>(), default(SongFormModel)),
                              attrType));
        }
        public void MockTest()
        {
            var mock = new Mock <IGetDataRepository>();

            mock.Setup(p => p.GetSongById(1)).Returns("Summer of 69");
            SongsController song   = new SongsController(mock.Object);
            string          result = song.GetSongById(1);

            NUnit.Framework.Assert.AreEqual("Summer of 69", result);
        }
Ejemplo n.º 12
0
        public void InitializeSongsControllerCorrectly_WhenDependenciesAreNotNull()
        {
            var mapperMock       = new Mock <IMapper>();
            var songServiceMock  = new Mock <ISongService>();
            var genreServiceMock = new Mock <IGenreService>();

            var controller = new SongsController(songServiceMock.Object, mapperMock.Object);

            Assert.IsNotNull(controller);
        }
Ejemplo n.º 13
0
        public void SongsPut()
        {
            var testSubject = new SongsController(_testRepo);
            var newObject   = new Song()
            {
                Id = 1, Artist = "TestArtist"
            };

            testSubject.Put(1, newObject);
            Assert.IsTrue(_testRepo.Get(1).Artist == "TestArtist");
        }
Ejemplo n.º 14
0
        public void SongsPost()
        {
            var testSubject = new SongsController(_testRepo);
            var testObject  = new Song()
            {
                Id = 20, Artist = "TestArtist"
            };

            testSubject.Post(testObject);
            Assert.IsTrue(_testRepo.GetAll().Count > 20);
        }
        public void Delete()
        {
            // Arrange
            SongsController controller = new SongsController();

            // Act
            ViewResult result = controller.Delete(6) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
        public void Edit()
        {
            // Arrange
            SongsController controller = new SongsController();

            // Act
            ViewResult result = controller.Edit(5) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Ejemplo n.º 17
0
        public void SongsFilter() //TODO figure out where this argument null exception comes from
        {
            var testSubject = new SongsController(_testRepo);
            var result      = testSubject.Get("Hans2");

            //var fact = _testRepo.GetQueryable().Where(x => x.Artist == "Hans2").ToList();
            Assert.IsTrue(result != null);
            var resultList = result.Value;
            var resultItem = resultList.FirstOrDefault();

            Assert.IsTrue(resultItem.Artist == "Hans2");
        }
        public void Index()
        {
            // Arrange
            SongsController _controller = new SongsController();

            // Act
            ViewResult result = _controller.Index() as ViewResult;

            // Assert
            NUnit.Framework.Assert.IsNotNull(result);

            NUnit.Framework.Assert.AreSame(result.ViewData["Message"], "I made this project to keep track of songs that I have.");
        }
Ejemplo n.º 19
0
        public SongsControllerTests(PostgresDatabaseFixture fixture)
        {
            _fixture = fixture;

            _logger          = new Logger <SongsController>(new NullLoggerFactory());
            _coreDataService = new DbCoreData(_fixture._context);
            _fileStorage     = Substitute.For <IFileStorage>();
            _songService     = new DbSong(_fixture._context);

            _songsController = new SongsController(_logger, _coreDataService, _fileStorage, _songService);

            Setup.DropAllRows(_fixture._context);
        }
        public void EditArtist()
        {
            // Arrange
            SongsController controller = new SongsController();

            // Act
            ViewResult result = controller.Edit(5) as ViewResult;

            // Assert
            Assert.AreEqual("ACDC", result.ViewBag.Artist);
            Assert.AreNotEqual("Greenday", result.ViewBag.Artist);
            Assert.IsNull(result.ViewBag.Artist);
            Assert.IsNotNull(result.ViewBag);
        }
        public void Create()
        {
            // Arrange
            SongsController controller = new SongsController();

            // Act
            ViewResult result = controller.Create() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreSame(controller.User.Identity.Name, "Abc@123");
            Assert.AreSame(controller.Create(), "Jason");
            Assert.AreSame(controller.Request.Headers["X-Requested-With"].ToString(), "XMLHttpRequest");
        }
Ejemplo n.º 22
0
        public SongsControllerUnitTest()
        {
            _testSongs = new List <Song>
            {
                new Song
                {
                    Duration = TimeSpan.FromSeconds(100),
                    Id       = 1,
                    Lyrics   = "lyrics",
                    Rating   = 5,
                    Title    = "Song1"
                },
                new Song
                {
                    Duration = TimeSpan.FromSeconds(200),
                    Id       = 2,
                    Lyrics   = "lyrics",
                    Rating   = 5,
                    Title    = "Song1"
                },
                new Song
                {
                    Duration = TimeSpan.FromSeconds(300),
                    Id       = 3,
                    Lyrics   = "lyrics",
                    Rating   = 5,
                    Title    = "Song3"
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Song> >();

            mockSet.As <IAsyncEnumerable <Song> >()
            .Setup(d => d.GetEnumerator())
            .Returns(new TestDbAsyncEnumerator <Song>(_testSongs.GetEnumerator()));

            mockSet.As <IQueryable <Song> >().Setup(m => m.Provider)
            .Returns(new TestAsyncQueryProvider <Song>(_testSongs.Provider));
            mockSet.As <IQueryable <Song> >().Setup(m => m.Expression).Returns(_testSongs.Expression);
            mockSet.As <IQueryable <Song> >().Setup(m => m.ElementType).Returns(_testSongs.ElementType);
            mockSet.As <IQueryable <Song> >().Setup(m => m.GetEnumerator()).Returns(_testSongs.GetEnumerator());

            var dbContext = new Mock <DataContext>();

            dbContext.Setup(dc => dc.Songs).Returns(mockSet.Object);
            dbContext.Setup(dc => dc.Set <Song>()).Returns(mockSet.Object);

            _controller = new SongsController(dbContext.Object);
        }
Ejemplo n.º 23
0
        public async Task ReturnViewWithErrorMessageWhenSongFileIsNull()
        {
            SongFormModel model = new SongFormModel();

            // Arrange
            SongsController sut = CreateSongsController(Mock.Of <ICommandService <UploadSong> >());

            // Act
            var result = await sut.Upload(model) as WithMessageResult;

            // Assert
            Assert.AreEqual(typeof(WithMessageResult), result.GetType());
            Assert.AreEqual("danger", result.Type);
            StringAssert.Contains("choose a file", result.Message);
        }
        public async Task SongController_GetEdit_ShouldReturnBadRequestWhenSongIsNull()
        {
            //Arrenge
            var adminSongService = this.GetAdminSongServiceBaseMock();

            adminSongService
            .Setup(s => s.GetByIdAsync(It.IsAny <int>()))
            .ReturnsAsync((AdminSongEditServiceModel)null);

            var controller = new SongsController(null, adminSongService.Object);
            //Act
            var result = await controller.Edit(1);

            //Assert
            result.Should().BeOfType <BadRequestResult>();
        }
        public async Task SongController_GetDetails_ShouldReturnBadRequestWhenSongDoesNotExist()
        {
            //Arrenge
            var adminSongService = this.GetAdminSongServiceBaseMock();

            adminSongService
            .Setup(s => s.DetailsAsync(It.IsAny <int>()))
            .ReturnsAsync((AdminSongDetailsServiceModel)null);

            var controller = new SongsController(null, adminSongService.Object);
            //Act
            var result = await controller.Details(10);

            //Assert
            result.Should().BeOfType <BadRequestResult>();
        }
Ejemplo n.º 26
0
        public async Task ReturnViewWithTheSameModelWhenSongFileIsNull()
        {
            SongFormModel model = new SongFormModel();

            // Arrange
            SongsController sut = CreateSongsController(Mock.Of <ICommandService <UploadSong> >());

            // Act
            var result = await sut.Upload(model) as WithMessageResult;

            var realAction = result.Action as ViewResult;

            // Assert
            Assert.IsNotNull(realAction.Model);
            Assert.AreSame(model, realAction.Model);
        }
Ejemplo n.º 27
0
 /// <summary>
 /// does the pot action for the table specified
 /// </summary>
 /// <param name="table">the table(API)</param>
 private static void postAPICall(string table)
 {
     if (table.Equals("songs"))
     {
         Assignment2.song s      = getSongPostInfo();
         SongsController  cont   = new SongsController();
         string           result = cont.PostSong(s);
         Console.WriteLine(result);
     }
     else if (table.Equals("reviews"))
     {
         Assignment2.review r      = getReviewPostInfo();
         ReviewsController  cont   = new ReviewsController();
         string             result = cont.PostReview(r);
         Console.WriteLine(result);
     }
 }
Ejemplo n.º 28
0
        public void Create()
        {
            // arrange
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase("test");
            var context        = new ApplicationDbContext(optionsBuilder.Options);

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            var controller = new SongsController(context);

            //act



            //assert
        }
        public async Task SongController_ListAll_ShouldreturnViewWithSongs()
        {
            //Arrange
            const int TotalSongs       = 2;
            var       adminSongService = this.GetAdminSongServiceBaseMock();

            adminSongService
            .Setup(s => s.AllAsync(It.IsAny <int>()))
            .ReturnsAsync(new List <AdminSongListingServiceModel>
            {
                new AdminSongListingServiceModel {
                    Id = FirstUserId, Name = FirstUserName, Artist = FirstArtistName
                },
                new AdminSongListingServiceModel {
                    Id = SecondUserId, Name = SecondUserName, Artist = SecondArtistName
                }
            });

            adminSongService
            .Setup(s => s.TotalAsync())
            .ReturnsAsync(TotalSongs);

            var controller = new SongsController(null, adminSongService.Object);

            //Act
            var result = await controller.ListAll(1);

            //Assert
            result.Should().BeOfType <ViewResult>();
            var model = result.As <ViewResult>().Model;

            model.Should().BeOfType <SongListingViewModel>();

            var formModel = model.As <SongListingViewModel>();

            formModel.AllSongs.Should().Match(s => s.Count() == 2);
            formModel.CurrentPage.Should().Be(1);
            formModel.TotalSongs.Should().Be(TotalSongs);

            formModel.AllSongs.First().Should().Match(s => s.As <AdminSongListingServiceModel>().Id == FirstUserId);
            formModel.AllSongs.First().Should().Match(s => s.As <AdminSongListingServiceModel>().Name == FirstUserName);
            formModel.AllSongs.First().Should().Match(s => s.As <AdminSongListingServiceModel>().Artist == FirstArtistName);
            formModel.AllSongs.Last().Should().Match(s => s.As <AdminSongListingServiceModel>().Id == SecondUserId);
            formModel.AllSongs.Last().Should().Match(s => s.As <AdminSongListingServiceModel>().Name == SecondUserName);
            formModel.AllSongs.Last().Should().Match(s => s.As <AdminSongListingServiceModel>().Artist == SecondArtistName);
        }
Ejemplo n.º 30
0
        public void GetRetunsString()
        {
            var options = new DbContextOptionsBuilder <MusicDbContext>()
                          .UseInMemoryDatabase(databaseName: "ReturnStringTest")
                          .Options;

            //Arrange
            using (var context = new MusicDbContext(options))
            {
                var controller = new SongsController(context);

                //Act
                var result = controller.Get(5);

                //Assert
                Assert.IsType <string>(result);
            }
        }