public void TestAddCorrectWidgetParameters() { // Arrange const string userNameConst = "tretyakov"; const string widgetIdConst = "111"; const string widgetNameConst = "my widget"; const string widgetContentConst = "<xml /><content></content>"; const string widgetItemIdConst = "5"; var requestMock = new Mock<HttpRequestMessage>(); requestMock.Object.Method = new HttpMethod("POST"); requestMock.Object.Properties.Add("MS_HttpConfiguration", GetHttpConfiguration()); string userName = string.Empty, widgetId = string.Empty, widgetName = string.Empty, contentUri = string.Empty; IPrincipal principal = Thread.CurrentPrincipal; Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(userNameConst), new string[] {}); var mock = new Mock<IWidgetItemRepository>(); mock.Setup(m => m.Add(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())) .Returns(widgetItemIdConst) .Callback<string, string, string, string>( (userNameValue, widgetIdValue, widgetNameValue, contentUriValue) => { userName = userNameValue; widgetId = widgetIdValue; widgetName = widgetNameValue; contentUri = contentUriValue; } ); var widgetsController = new WidgetsController(mock.Object) {Request = requestMock.Object}; string response = string.Empty; Exception exception = null; // Act try { response = widgetsController.Post(widgetIdConst, widgetNameConst, widgetContentConst); } catch (Exception e) { exception = e; } // Assert mock.Verify(m => m.Add(userNameConst, widgetIdConst, widgetNameConst, It.IsAny<string>()), Times.Once()); Assert.IsNull(exception); Assert.IsTrue(response == widgetItemIdConst); Assert.IsTrue(userName == userNameConst); Assert.IsTrue(widgetId == widgetIdConst); Assert.IsTrue(widgetName == widgetNameConst); Assert.IsFalse(string.IsNullOrEmpty(contentUri)); Assert.IsTrue(File.Exists(contentUri)); Thread.CurrentPrincipal = principal; }
public void TestAddInvalidWidgetContent() { // Arrange const string userNameConst = "tretyakov"; const string widgetIdConst = "111"; const string widgetNameConst = "my widget"; const string widgetContentConst = ""; var requestMock = new Mock <HttpRequestMessage>(); requestMock.Object.Method = new HttpMethod("POST"); requestMock.Object.Properties.Add("MS_HttpConfiguration", GetHttpConfiguration()); IPrincipal principal = Thread.CurrentPrincipal; Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(userNameConst), new string[] {}); var mock = new Mock <IWidgetItemRepository>(); mock.Setup(m => m.Add(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns("5"); var widgetsController = new WidgetsController(mock.Object) { Request = requestMock.Object }; string response = string.Empty; Exception exception = null; HttpResponseException responseException = null; // Act try { response = widgetsController.Post(widgetIdConst, widgetNameConst, widgetContentConst); } catch (HttpResponseException e) { responseException = e; } catch (Exception e) { exception = e; } // Assert mock.Verify(m => m.Add(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Never()); Assert.IsNull(exception); Assert.IsTrue(string.IsNullOrEmpty(response)); Assert.IsNotNull(responseException); Assert.IsTrue(responseException.Response.StatusCode == HttpStatusCode.BadRequest); Thread.CurrentPrincipal = principal; }
public void TestAddCorrectWidgetParameters() { // Arrange const string userNameConst = "tretyakov"; const string widgetIdConst = "111"; const string widgetNameConst = "my widget"; const string widgetContentConst = "<xml /><content></content>"; const string widgetItemIdConst = "5"; var requestMock = new Mock <HttpRequestMessage>(); requestMock.Object.Method = new HttpMethod("POST"); requestMock.Object.Properties.Add("MS_HttpConfiguration", GetHttpConfiguration()); string userName = string.Empty, widgetId = string.Empty, widgetName = string.Empty, contentUri = string.Empty; IPrincipal principal = Thread.CurrentPrincipal; Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(userNameConst), new string[] {}); var mock = new Mock <IWidgetItemRepository>(); mock.Setup(m => m.Add(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(widgetItemIdConst) .Callback <string, string, string, string>( (userNameValue, widgetIdValue, widgetNameValue, contentUriValue) => { userName = userNameValue; widgetId = widgetIdValue; widgetName = widgetNameValue; contentUri = contentUriValue; } ); var widgetsController = new WidgetsController(mock.Object) { Request = requestMock.Object }; string response = string.Empty; Exception exception = null; // Act try { response = widgetsController.Post(widgetIdConst, widgetNameConst, widgetContentConst); } catch (Exception e) { exception = e; } // Assert mock.Verify(m => m.Add(userNameConst, widgetIdConst, widgetNameConst, It.IsAny <string>()), Times.Once()); Assert.IsNull(exception); Assert.IsTrue(response == widgetItemIdConst); Assert.IsTrue(userName == userNameConst); Assert.IsTrue(widgetId == widgetIdConst); Assert.IsTrue(widgetName == widgetNameConst); Assert.IsFalse(string.IsNullOrEmpty(contentUri)); Assert.IsTrue(File.Exists(contentUri)); Thread.CurrentPrincipal = principal; }
public void TestAddInvalidWidgetName() { // Arrange const string userNameConst = "tretyakov"; const string widgetIdConst = "111"; const string widgetNameConst = ""; const string widgetContentConst = "<xml /><content></content>"; var requestMock = new Mock<HttpRequestMessage>(); requestMock.Object.Method = new HttpMethod("POST"); requestMock.Object.Properties.Add("MS_HttpConfiguration", GetHttpConfiguration()); IPrincipal principal = Thread.CurrentPrincipal; Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(userNameConst), new string[] {}); var mock = new Mock<IWidgetItemRepository>(); mock.Setup(m => m.Add(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())) .Returns("5"); var widgetsController = new WidgetsController(mock.Object) {Request = requestMock.Object}; string response = string.Empty; Exception exception = null; HttpResponseException responseException = null; // Act try { response = widgetsController.Post(widgetIdConst, widgetNameConst, widgetContentConst); } catch (HttpResponseException e) { responseException = e; } catch (Exception e) { exception = e; } // Assert mock.Verify(m => m.Add(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never()); Assert.IsNull(exception); Assert.IsTrue(string.IsNullOrEmpty(response)); Assert.IsNotNull(responseException); Assert.IsTrue(responseException.Response.StatusCode == HttpStatusCode.BadRequest); Thread.CurrentPrincipal = principal; }