public void CreateDatabase_DatabaseServiceThrowsExceptions_ReturnsValidResults() { // Arrange string dbName = "testDatabase"; Dictionary <Exception, Type> resultsDictionary = new Dictionary <Exception, Type> { { new ArgumentException(), typeof(BadRequestResult) }, { new InvalidDatabaseNameException(), typeof(BadRequestErrorMessageResult) }, { new DatabaseAlreadyExistsException(), typeof(ConflictResult) }, { new DbServiceException(), typeof(InternalServerErrorResult) } }; foreach (KeyValuePair <Exception, Type> result in resultsDictionary) { // Arrange - mock dbService this._dbServiceMock.Setup(s => s.CreateDatabase(dbName)) .Throws(result.Key); // Arrange - create target DatabaseApiController target = new DatabaseApiController(this._dbServiceMock.Object); // Act IHttpActionResult actionResult = target.CreateDatabase(dbName); // Assert Assert.IsInstanceOf(result.Value, actionResult); } }
public void CreateDatabase_DatabaseServiceCreatesDatabase_ReturnsCreatedAtRouteResult() { // Arrange string dbName = "testDatabase"; // Arrange - create target DatabaseApiController target = new DatabaseApiController(this._dbServiceMock.Object); // Act IHttpActionResult actionResult = target.CreateDatabase(dbName); CreatedAtRouteNegotiatedContentResult <string> createdResult = actionResult as CreatedAtRouteNegotiatedContentResult <string>; // Assert Assert.IsNotNull(createdResult); Assert.AreEqual("GetDatabase", createdResult.RouteName); Assert.AreEqual(dbName, createdResult.RouteValues["dbName"]); this._dbServiceMock.Verify(s => s.CreateDatabase(dbName), Times.Once); }