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 GetAlbumsAsyncCursorNullTest() { using (var dataAccess = Substitute.For <IDataAccess>()) { dataAccess.ExecuteQueryWithParametersAsync(Arg.Any <string>(), Arg.Any <List <SQLiteParameter> >()).Returns(a => (Cursor)null); using (var artistController = new ArtistController(dataAccess)) { Assert.ThrowsAsync <SQLiteException>(() => artistController.GetAlbumsAsync("string")); } } }