Пример #1
0
        public async Task ArtistController_TestItemLookup()
        {
            var expected = new Artist()
            {
                Id     = 1,
                Name   = "Test Artist",
                Albums = new List <Album>()
                {
                    new Album()
                    {
                        Id = 1, Name = "Test Album", ArtistId = 1
                    }
                }
            };

            var artistRepository = Substitute.For <IDataRepository <Artist> >();

            artistRepository.FindOneAsync(Arg.Any <Expression <Func <Artist, bool> > >(), Arg.Any <Expression <Func <Artist, object> > >()).Returns(expected);

            var artistController = new ArtistController(artistRepository);
            var actionResult     = await artistController.Item(1) as ViewResult;

            var actual = actionResult.Model as Artist;

            Assert.AreEqual(expected.Name, actual.Name);
            Assert.AreEqual(expected.Albums.Count, actual.Albums.Count);
        }
    protected void UpdateArtistButton_Click(object sender, EventArgs e)
    {
        #region My validation to ensure a name is presented for the artist
        string name = ArtistName.Text.Trim();
        if (string.IsNullOrEmpty(name))
        {
            ArtistName.Text           = "!!!Invalid_!_Name!!!";
            CompareValidator1.IsValid = false;
            Page.Validate();
            ArtistName.Text = "";
        }
        #endregion

        if (Page.IsValid)
        {
            try
            {
                ArtistController ac = new ArtistController();
                ac.UpdateArtist(int.Parse(UpdatingArtistID.Text), ArtistName.Text);
                LoadData();
                Message.Text = "Artist of ID " + UpdatingArtistID.Text + " has sucessfuly been renamed as " + ArtistName.Text;

                ChangeEditMode(false, "", "-1");
            }
            catch (Exception ex)
            {
                Message.Text = GetInnerException(ex).Message;
            }
        }
    }
Пример #3
0
        public async void BulkInsert_No_Errors()
        {
            ArtistControllerMockFacade mock = new ArtistControllerMockFacade();

            var mockResponse = ValidationResponseFactory <ApiArtistServerResponseModel> .CreateResponse(null as ApiArtistServerResponseModel);

            mockResponse.SetRecord(new ApiArtistServerResponseModel());
            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiArtistServerRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiArtistServerResponseModel> >(mockResponse));
            ArtistController controller = new ArtistController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var records = new List <ApiArtistServerRequestModel>();

            records.Add(new ApiArtistServerRequestModel());
            IActionResult response = await controller.BulkInsert(records);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var result = (response as OkObjectResult).Value as CreateResponse <List <ApiArtistServerResponseModel> >;

            result.Success.Should().BeTrue();
            result.Record.Should().NotBeEmpty();
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiArtistServerRequestModel>()));
        }
Пример #4
0
        public async Task Index_ReturnsView()
        {
            List <Artist> artistSource = new List <Artist>
            {
                new Artist {
                    Name = "Kaskade"
                },
                new Artist {
                    Name = "Foxxx"
                }
            };
            Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper);

            mockBackend.Setup(m => m.ArtistGetAllAsync()).ReturnsAsync(artistSource.OrderBy(a => a.Name).ToList());

            ArtistController       controller = new ArtistController(mockBackend.Object, autoMapper);
            ViewResult             result     = (await controller.Index()) as ViewResult;
            List <ArtistViewModel> viewModel  = result.Model as List <ArtistViewModel>;

            Assert.IsNotNull(result);
            Assert.IsNotNull(viewModel);
            Assert.AreEqual(2, viewModel.Count);
            Assert.AreEqual("Foxxx", viewModel[0].Name);
            Assert.AreEqual("Kaskade", viewModel[1].Name);
        }
        protected void LoadArtistList()
        {
            //  user friendly error handling (aka try/catch)

            //use the usercontrol MessageUserControl to manage the
            //    error handling for the web page when control
            //    leaves the web page and goes to the class library

            MessageUserControl.TryRun(() => {
                //what goes inside the coding block?
                //your code that would normally be inside the try portion of a try/catch
                ArtistController sysmgr   = new ArtistController();
                List <SelectionList> info = sysmgr.Artists_DDLList();

                //let's assume the data collection needs to be sorted
                info.Sort((x, y) => x.DisplayField.CompareTo(y.DisplayField));

                //setup the ddl
                ArtistList.DataSource = info;
                //ArtistList.DataTextField = "DisplayField";
                ArtistList.DataTextField  = nameof(SelectionList.DisplayField);
                ArtistList.DataValueField = nameof(SelectionList.ValueField);
                ArtistList.DataBind();

                //setup of a prompt line
                ArtistList.Items.Insert(0, new ListItem("select ...", "0"));
            }, "Success title message", "the succes title and body message are optional");
        }
        public void BeforeEachTest()
        {
            _fixture = new Fixture().Customize(new AutoMoqCustomization {
                ConfigureMembers = true
            });
            _inMemoryMusicDbContext = new MusicDbContext(new DbContextOptionsBuilder <MusicDbContext>()
                                                         .UseInMemoryDatabase("TestDB")
                                                         .Options);
            _fixture.Inject <MusicDbContext>(_inMemoryMusicDbContext);

            _inMemoryMusicDbContext.Database.EnsureDeleted();
            _inMemoryMusicDbContext.Database.EnsureCreated();

            _inMemoryMusicDbContext.Artists.Add(new Artist {
                Name = "Artist1"
            });
            _inMemoryMusicDbContext.Artists.Add(new Artist {
                Name = "Artist2"
            });
            _inMemoryMusicDbContext.SaveChanges();

            _sut = _fixture
                   .Build <ArtistController>()
                   .OmitAutoProperties()
                   .Create();
        }
Пример #7
0
        public async void Patch_No_Errors()
        {
            ArtistControllerMockFacade mock = new ArtistControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiArtistServerResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(true);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiArtistServerRequestModel>()))
            .Callback <int, ApiArtistServerRequestModel>(
                (id, model) => model.AspNetUserId.Should().Be("A")
                )
            .Returns(Task.FromResult <UpdateResponse <ApiArtistServerResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiArtistServerResponseModel>(new ApiArtistServerResponseModel()));
            ArtistController controller = new ArtistController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiArtistServerModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiArtistServerRequestModel>();

            patch.Replace(x => x.AspNetUserId, "A");

            IActionResult response = await controller.Patch(default(int), patch);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            mock.ServiceMock.Verify(x => x.Update(It.IsAny <int>(), It.IsAny <ApiArtistServerRequestModel>()));
        }
    protected void AddArtistButton_Click(object sender, EventArgs e)
    {
        #region My validation to ensure a name is presented for the artist
        string name = ArtistName.Text.Trim();
        if (string.IsNullOrEmpty(name))
        {
            ArtistName.Text           = "!!!Invalid_!_Name!!!";
            CompareValidator1.IsValid = false;
            Page.Validate();
            ArtistName.Text = "";
        }
        #endregion

        if (Page.IsValid)
        {
            try
            {
                ArtistController ac = new ArtistController();
                int newArtistID     = ac.AddArtist(ArtistName.Text);
                LoadData();
                Message.Text = "Artist " + ArtistName.Text + " has sucessfuly been added with an ID of " + newArtistID;
            }
            catch (Exception ex)
            {
                Message.Text = GetInnerException(ex).Message;
            }
        }
    }
Пример #9
0
        public void GetAsyncTest()
        {
            using (var cursor = Substitute.For <ICursor>())
            {
                cursor.GetInt(0).Returns(0);
                cursor.GetString(1).Returns("string");
                cursor.GetColumnIndex("id").Returns(0);
                cursor.GetColumnIndex("name").Returns(1);

                using (var dataAccess = Substitute.For <IDataAccess>())
                {
                    dataAccess.ExecuteQueryWithParametersAsync(Arg.Any <string>(), Arg.Any <List <SQLiteParameter> >()).Returns(cursor);

                    using (var artistController = new ArtistController(dataAccess))
                    {
                        var artists = artistController.GetAsync().Result.ToList();
                        Assert.IsNotNull(artists);
                        Assert.IsInstanceOf <List <Artist> >(artists);
                        Assert.AreEqual(1, artists.Count);
                        Assert.AreEqual(0, artists[0].Id);
                        Assert.AreEqual("string", artists[0].Name);
                    }
                }
            }
        }
Пример #10
0
        public void GetAlbumsAsyncTest()
        {
            using (var cursor = Substitute.For <ICursor>())
            {
                cursor.GetInt(0).Returns(13);
                cursor.GetString(1).Returns("string");
                cursor.GetInt(2).Returns(13);
                cursor.GetInt(3).Returns(7);
                cursor.GetInt(4).Returns(1999);
                cursor.GetColumnIndex("id").Returns(0);
                cursor.GetColumnIndex("name").Returns(1);
                cursor.GetColumnIndex("artist_id").Returns(2);
                cursor.GetColumnIndex("genre_id").Returns(3);
                cursor.GetColumnIndex("year").Returns(4);

                using (var dataAccess = Substitute.For <IDataAccess>())
                {
                    dataAccess.ExecuteQueryWithParametersAsync(Arg.Any <string>(), Arg.Any <List <SQLiteParameter> >()).Returns(cursor);

                    using (var artistController = new ArtistController(dataAccess))
                    {
                        var albums = artistController.GetAlbumsAsync("string").Result;
                        Assert.IsNotNull(albums);
                        Assert.IsInstanceOf <List <Album> >(albums);
                        Assert.AreEqual(1, albums.Count);
                        Assert.AreEqual(13, albums[0].Id);
                        Assert.AreEqual("string", albums[0].Name);
                        Assert.AreEqual(13, albums[0].ArtistId);
                        Assert.AreEqual(7, albums[0].GenreId);
                        Assert.AreEqual(1999, albums[0].Year);
                    }
                }
            }
        }
        public void Create_ReturnsCorrectActionType_RedirectToActionResult()
        {
            ArtistController controller = new ArtistController();

            ActionResult createView = controller.Create("QOTSA");

            Assert.IsInstanceOfType(createView, typeof(RedirectToActionResult));
        }
        public ArtistControllerTests()
        {
            service = new Mock <IArtistService>();

            controller               = new ArtistController(service.Object);
            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
        }
Пример #13
0
 private void CargarCombo()
 {
     ddlArtista.DataSource     = ArtistController.ListaArtist();
     ddlArtista.DataTextField  = "Name";
     ddlArtista.DataValueField = "Name";
     ddlArtista.DataBind();
     ddlArtista.Items.Insert(0, new ListItem("Seleccionar", "0"));
 }
Пример #14
0
        public async void AddAction_ReturnsCCreatedAtRouteResult_WithValidInput()
        {
            _repoMock.Setup(m => m.AddAsync(It.IsAny <Artist>())).ReturnsAsync(new ArtistDetail());
            ArtistController ctrl   = new ArtistController(_repoMock.Object, _loggerMock.Object);
            Artist           input  = CreateValidCreateModel();
            IActionResult    result = await ctrl.Add(input);

            Assert.IsType <CreatedAtRouteResult>(result);
        }
Пример #15
0
        public async void Updatection_ReturnsBadRequestOBjectResult_WhenRepoThrowsRepositoryException()
        {
            _repoMock.Setup(m => m.UpdateAsync(It.IsAny <int>(), It.IsAny <Artist>())).ThrowsAsync(new RepositoryException("Invalid genre"));
            ArtistController ctrl   = new ArtistController(_repoMock.Object, _loggerMock.Object);
            Artist           input  = CreateValidCreateModel();
            IActionResult    result = await ctrl.Update(1111, input);

            Assert.IsType <BadRequestObjectResult>(result);
        }
Пример #16
0
        public async void UpdateAction_ReturnsNotFoundObjectResult_WhenRepoThrowsEntityNotFoundRepositoryException()
        {
            _repoMock.Setup(m => m.UpdateAsync(It.IsAny <int>(), It.IsAny <Artist>())).ThrowsAsync(new EntityNotFoundRepositoryException("Artist not found"));
            ArtistController ctrl   = new ArtistController(_repoMock.Object, _loggerMock.Object);
            Artist           input  = CreateValidCreateModel();
            IActionResult    result = await ctrl.Update(1111, input);

            Assert.IsType <NotFoundObjectResult>(result);
        }
Пример #17
0
        public void Create_ReturnsView()
        {
            Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper);

            ArtistController controller = new ArtistController(mockBackend.Object, autoMapper);
            ViewResult       result     = (controller.Create()) as ViewResult;

            Assert.IsNotNull(result);
        }
Пример #18
0
        public void Create_ReturnsCorrectActionType_RedirectToActionResult()
        {
            //Arrange
            ArtistController controller = new ArtistController();

            //Act
            IActionResult view = controller.Create("Walk the dog") as ViewResult;

            //Assert
            Assert.IsInstanceOfType(view, typeof(ActionResult));
        }
        public void Index_ReturnsAViewResult_True()
        {
            //Arrange
            ArtistController controller = new ArtistController();

            //Act
            ActionResult indexView = controller.Index();

            //Assert
            Assert.IsInstanceOfType(indexView, typeof(ViewResult));
        }
        public void Index_HasCorrectModelType_ArtistsList()
        {
            //Arrange
            ViewResult indexView = new ArtistController().Index() as ViewResult;

            //Act
            var result = indexView.ViewData.Model;

            //Assert
            Assert.IsInstanceOfType(result, typeof(List <Artist>));
        }
Пример #21
0
        public async Task TestInvalidMusicBrainzRequest_ShouldReturnValidJsonString()
        {
            // Proper test? Fails if content changes
            string uri = "http://musicbrainz.org/ws/2/artist/X53b106e7-0cc6-42cc-ac95-ed8d30a3a98e?&fmt=json&inc=url-rels+release-groups";
            string expectedResponse = "";

            var memory     = new InMemoryCache(1, new MemoryCache("unit-test-cache2"));
            var controller = new ArtistController(new MusicGenieClient(memory, 1, 1, 1));
            var result     = await controller.MakeRequest(uri);

            Assert.AreEqual(expectedResponse, result);
        }
Пример #22
0
        public void TestArtistDeleteItem()
        {
            //Arrange
            var SqlLiteDataMock  = new Mock <IMusicData>();
            var ArtistController = new ArtistController(SqlLiteDataMock.Object);

            //Act
            ActionResult actionResult = ArtistController.ArtistDeleteItem(-1);

            // Assert
            Assert.IsType <NotFoundObjectResult>(actionResult);
        }
Пример #23
0
        public void TestArtistGetAllItems()
        {
            //Arrange
            var SqlLiteDataMock  = new Mock <IMusicData>();
            var ArtistController = new ArtistController(SqlLiteDataMock.Object);

            //Act
            ActionResult actionResult = ArtistController.ArtistGetAllItems();

            //Assert
            Assert.IsType <OkObjectResult>(actionResult);
        }
        public void Create_RedirectsToCorrectAction_Index()
        {
            //Arrange
            ArtistController       controller   = new ArtistController();
            RedirectToActionResult actionResult = controller.Create("Walk the dog") as RedirectToActionResult;

            //Act
            string result = actionResult.ActionName;

            //Assert
            Assert.AreEqual(result, "Index");
        }
Пример #25
0
        public async Task TestWikipediaRequest_ShouldReturnValidJsonString()
        {
            // Proper test? Fails if content changes
            string uri = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&exintro=true&redirects=true&titles=pink_floyd";
            string expectedResponse = GetPinkFloydSummary;

            var memory     = new InMemoryCache(1, new MemoryCache("unit-test-cache2"));
            var controller = new ArtistController();
            var result     = await controller.MakeRequest(uri);

            Assert.AreEqual(expectedResponse, result);
        }
        public void Create_HasCorrectModelType_ArtistObject()
        {
            //Arrange
            ArtistController createView   = new ArtistController();
            ViewResult       createObject = createView.Create("QOTSA") as ViewResult;

            //Act
            var result = createView.ViewData.Model;

            //Assert
            Assert.IsInstanceOfType(result, typeof(Artist));
        }
Пример #27
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            AppForm          appForm          = new AppForm();
            ArtistController artistController = new ArtistController(appForm);
            UserController   userController   = new UserController(appForm);
            Songcontroller   songcontroller   = new Songcontroller(appForm);
            VideoController  videoController  = new VideoController(appForm);

            Application.Run(appForm);
        }
Пример #28
0
        public async Task TestInvalidWikipediaRequest_ShouldEmptyString()
        {
            // Proper test? Fails if content changes
            string uri = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&exintro=true&redirects=true&titles=";
            string expectedResponse = "{\"batchcomplete\":\"\"}";

            var memory     = new InMemoryCache(1, new MemoryCache("unit-test-cache2"));
            var controller = new ArtistController();
            var result     = await controller.MakeRequest(uri);

            Assert.AreEqual(expectedResponse, result);
        }
Пример #29
0
        public async Task Edit_NotFoundItem_RedirectsToIndex()
        {
            Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper);

            mockBackend.Setup(m => m.ArtistGetByIDAsync(It.IsAny <int>())).ReturnsAsync((Artist)null);

            ArtistController      controller = new ArtistController(mockBackend.Object, autoMapper);
            RedirectToRouteResult result     = (await controller.Edit(1)) as RedirectToRouteResult;

            Assert.IsNotNull(result);
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
Пример #30
0
        protected void BindArtistList()
        {
            ArtistController sysmgr = new ArtistController();
            List <Artist>    info   = sysmgr.Artist_List();

            info.Sort((x, y) => x.Name.CompareTo(y.Name));
            ArtistList.DataSource     = info;
            ArtistList.DataTextField  = nameof(Artist.Name);
            ArtistList.DataValueField = nameof(Artist.ArtistId);
            ArtistList.DataBind();
            //ArtistList.Items.Insert(0, "select ...");
        }