public void GetTable_DatabaseServiceThrowsExceptions_ReturnsValidResults() { // Arrange string dbName = "testDatabase"; string tableName = "testTable"; Dictionary <Exception, Type> resultsDictionary = new Dictionary <Exception, Type> { { new ArgumentException(), typeof(BadRequestResult) }, { new DatabaseNotFoundException(), typeof(NotFoundResult) }, { new DbServiceException(), typeof(InternalServerErrorResult) } }; foreach (KeyValuePair <Exception, Type> result in resultsDictionary) { // Arrange - mock dbService this._dbServiceMock.Setup(s => s.GetTable(dbName, tableName)) .Throws(result.Key); // Arrange - create target DatabaseApiController target = new DatabaseApiController(this._dbServiceMock.Object); // Act IHttpActionResult actionResult = target.GetTable(dbName, tableName); // Assert Assert.IsInstanceOf(result.Value, actionResult); } }
public void GetTable_DatabaseServiceReturnsNull_ReturnsNotFoundResult() { // Arrange string dbName = "testDatabase"; string tableName = "testTable"; // Arrange - mock dbService this._dbServiceMock.Setup(s => s.GetTable(dbName, tableName)) .Returns((Table)null); // Arrange - create target DatabaseApiController target = new DatabaseApiController(this._dbServiceMock.Object); // Act IHttpActionResult actionResult = target.GetTable(dbName, tableName); // Assert Assert.IsInstanceOf <NotFoundResult>(actionResult); }
public void GetTable_DatabaseServiceReturnsTable_ReturnsTableDto() { // Arrange string dbName = "testDatabase"; Table table = new Table { Name = "testTable", Attributes = { new Domain.Models.Attribute { Name = "firstAttribute", Type = "someType" } }, Rows = { { 0, new Row { Id = 0, Value ={ "firstValue" } } } } }; TableDto tableDto = new TableDto { Name = table.Name, Attributes = table.Attributes, Rows = table.Rows.Values }; // Arrange - mock dbService this._dbServiceMock.Setup(s => s.GetTable(dbName, table.Name)) .Returns(table); // Arrange - create target DatabaseApiController target = new DatabaseApiController(this._dbServiceMock.Object); // Act IHttpActionResult actionResult = target.GetTable(dbName, table.Name); OkNegotiatedContentResult <TableDto> contentResult = actionResult as OkNegotiatedContentResult <TableDto>; // Assert Assert.IsNotNull(contentResult); Assert.IsNotNull(contentResult.Content); Assert.AreEqual(tableDto.Name, contentResult.Content.Name); Assert.AreEqual(tableDto.Attributes, contentResult.Content.Attributes); Assert.AreEqual(tableDto.Rows, contentResult.Content.Rows); }