public async Task CreateNewgameTest() { //Arrange var user_good = new UserDTO { UserName = ControllerDataToUse.UserDTO.UserName }; var user_bad = new UserDTO { UserName = "******" }; mockGameService = new MockGameService() .MockCreateGame(); mockUserService = new MockUserService() .MockGetUser(); //Act var gameController = new GameController(mockUserService.Object, mockGameService.Object); HttpContextManager.SetCurrentContext(new MockHttpContext(user_good.UserName).CustomHttpContextBase); var result_good = await gameController.CreateNewGame(new NewGameModel { FirstColor = "black" }); HttpContextManager.SetCurrentContext(new MockHttpContext(user_bad.UserName).CustomHttpContextBase); //Assert Assert.IsNotNull(result_good, "Can't create game for valid username."); await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.CreateNewGame(new NewGameModel { FirstColor = "black" }), "Can create game for invalid username."); }
public virtual void SetupTest() { moqHttpContext = new Mock <HttpContextBase>(); moqRequest = new Mock <HttpRequestBase>(); moqResponse = new Mock <HttpResponseBase>(); moqSession = new Mock <HttpSessionStateBase>(); moqServer = new Mock <HttpServerUtilityBase>(); moqUrlHelper = new Mock <UrlHelper>(); moqRequestContext = new Mock <RequestContext>(); moqRequestContext.Setup(x => x.HttpContext).Returns(moqHttpContext.Object); moqHttpContext.Setup(x => x.Request).Returns(moqRequest.Object); moqHttpContext.Setup(x => x.Response).Returns(moqResponse.Object); moqHttpContext.Setup(x => x.Session).Returns(moqSession.Object); moqHttpContext.Setup(x => x.Server).Returns(moqServer.Object); moqRequest.Setup(x => x.Url).Returns(new Uri("http://localhost")); moqRequest.Setup(x => x.RequestContext).Returns(moqRequestContext.Object); moqRequest.Setup(x => x.ServerVariables).Returns(new NameValueCollection { { "SERVER_NAME", "localhost" }, { "SCRIPT_NAME", "localhost" }, { "SERVER_PORT", "80" }, { "REMOTE_ADDR", "127.0.0.1" }, { "REMOTE_HOST", "127.0.0.1" } }); moqRequest.Setup(x => x.QueryString).Returns(new NameValueCollection()); moqRequest.Setup(x => x.Headers).Returns(new NameValueCollection()); moqResponse.Setup(x => x.Cookies).Returns(new HttpCookieCollection()); HttpContextManager.SetCurrentContext(moqHttpContext.Object); }
public async Task GetUserGamesTest() { //Arrange var good_user = new UserDTO { UserName = ControllerDataToUse.UserDTO.UserName }; var bad_user = new UserDTO { UserName = "******" }; mockGameService = new MockGameService() .MockGetUserGames(); //Act var gameController = new GameController(null, mockGameService.Object); HttpContextManager.SetCurrentContext(new MockHttpContext(good_user.UserName).CustomHttpContextBase); var goodGamesRes = await gameController.GetUserGames(); HttpContextManager.SetCurrentContext(new MockHttpContext(bad_user.UserName).CustomHttpContextBase); var badGamesRes = await gameController.GetUserGames(); //Assert Assert.AreEqual(Json.Encode(new List <GameDTO> { ControllerDataToUse.GameDTO }), Json.Encode(goodGamesRes.Data), "Are not equal good games"); Assert.IsNull(badGamesRes, "Not null games for user with bad bad username"); }
public async Task GetAvailableGamesTest() { //Arrange mockGameService = new MockGameService() .MockGetAvailableGames(); var good_user1 = new UserDTO { UserName = ControllerDataToUse.UserDTO.UserName }; var bad_user = new UserDTO { UserName = "******" }; //Act var gameController = new GameController(null, mockGameService.Object); HttpContextManager.SetCurrentContext(new MockHttpContext(good_user1.UserName).CustomHttpContextBase); var result1 = await gameController.GetAvailableGames(); HttpContextManager.SetCurrentContext(new MockHttpContext(bad_user.UserName).CustomHttpContextBase); var result_bad = await gameController.GetAvailableGames(); List <GameDTO> resList_1 = Json.Decode <List <GameDTO> >(Json.Encode(result1.Data)); //Assert Assert.AreEqual(resList_1.Count, 1, "Bad number of available games for user"); Assert.IsNull(result_bad, "List of games for user with bad username is ot empty"); }
public void TestIndex() { HttpContextManager.SetCurrentContext(GetMockedHttpContext()); var controllerContext = new Mock <ControllerContext>(); var principal = new Mock <IPrincipal>(); var baseController = new Mock <BaseController>(); principal.Setup(p => p.IsInRole("Administrator")).Returns(true); principal.Setup(p => p.Identity.IsAuthenticated).Returns(true); principal.SetupGet(x => x.Identity.Name).Returns("userName"); controllerContext.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true); controllerContext.SetupGet(x => x.HttpContext.User).Returns(principal.Object); var test = Fixture.Build <RegisterBenutzerViewModel>().WithAutoProperties().Create(); var mockBenutzerViewModelService = new Mock <IBenutzerViewModelService>(); mockBenutzerViewModelService.Setup(x => x.CreateNewRegisterBenutzerViewModel()).Returns(test); HomeController homecontroller = new HomeController(mockBenutzerViewModelService.Object); homecontroller.ControllerContext = controllerContext.Object; //Act var result = homecontroller.Index() as ViewResult; //Assert Assert.AreEqual(result.ViewName, "Index"); }
public void Init() { //set mocks HttpContextManager.SetCurrentContext(GetMockedHttpContext()); //set twitter credentials // If you do not already have a BearerToken, use the TRUE parameter to automatically generate it. // Note that this will result in a WebRequest to be performed and you will therefore need to make this code safe var appCreds = Auth.SetApplicationOnlyCredentials("MvQXCZIKKondIuS8FHuRWVlgJ", "S2k8jrBuZOGbM3mxogZgpJyuoQRZuZZUDRHT6jcZHkObVry5Bm", true); }
private void Application_BeginRequest(Object sender, EventArgs e) { HttpContextManager.HandleUseSSL(); if (IsWebApiRequest()) { HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required); } //else //{ // HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath.ToLower().StartsWith("~/umbraco/"); //} }
public async Task IndexTest() { //Arrange UserDTO guest_1 = new UserDTO { UserName = "******", Name = "somename", Surname = "someSurname" }; UserDTO guest_2 = new UserDTO(); string fullName = ControllerDataToUse.UserDTO.Name + " " + ControllerDataToUse.UserDTO.Surname; var mockUserService = new MockUserService() .MockGetUser(); //Act_1 HomeController homeController = new HomeController(mockUserService.Object); HttpContextManager.SetCurrentContext(new MockHttpContext(ControllerDataToUse.UserDTO.UserName).CustomHttpContextBase); ActionResult goodResult = await homeController.Index(); //Assert_1 Assert.AreEqual(fullName, HttpContextManager.Current.Session["FullName"], "Bad user full name inside Session"); //Act_2 HttpContextManager.SetCurrentContext(new MockHttpContext(guest_1.UserName).CustomHttpContextBase); ActionResult guest1Result = await homeController.Index(); //Assert_2 Assert.ThrowsException <KeyNotFoundException>(() => HttpContextManager.Current.Session["FullName"], "Exist full name in session for guest with name"); //Act_3 HttpContextManager.SetCurrentContext(new MockHttpContext(guest_2.UserName).CustomHttpContextBase); HttpContextManager.Current.Session["FullName"] = fullName; ActionResult logoutResult = await homeController.Index(); //Assert_3 Assert.ThrowsException <KeyNotFoundException>(() => HttpContextManager.Current.Session["FullName"], "Exist full name in session for guest who loged out"); //Act_4 HttpContextManager.SetCurrentContext(new MockHttpContext(guest_2.UserName).CustomHttpContextBase); ActionResult guest2Result = await homeController.Index(); //Assert_4 Assert.ThrowsException <KeyNotFoundException>(() => HttpContextManager.Current.Session["FullName"], "Exist full name in session for new guest"); //Assert_final Assert.IsNotNull(goodResult, "Do not return View for user."); Assert.IsNotNull(guest1Result, "Do not return View for guest with name."); Assert.IsNotNull(guest2Result, "Do not return View for new guest."); }
public async Task EnterGameTest() { //Arrange var game_good = ControllerDataToUse.GameDTO; var game_bad = new GameDTO { Id = 123 }; UserDTO user_good; var user_bad = new UserDTO { UserName = "******" }; mockGameService = new MockGameService() .MockGetFiguresOnTable() .MockGetGame() .MockJoinGame(); //mockUserService = new MockUserService() // .MockGetUser(); //Act var gameController = new GameController(null, mockGameService.Object); HttpContextManager.SetCurrentContext(new MockHttpContext(user_bad.UserName).CustomHttpContextBase); //Assert await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.EnterGame(game_good.Id), "User with invalid username can join game with valid id."); //Act ControllerDataToUse.UserDTO.UserName = "******"; ControllerDataToUse.UserDTO.Id = 2; user_good = ControllerDataToUse.UserDTO; HttpContextManager.SetCurrentContext(new MockHttpContext(user_good.UserName).CustomHttpContextBase); var result_1_good = await gameController.EnterGame(game_good.Id); ControllerDataToUse.UserDTO.UserName = "******"; ControllerDataToUse.UserDTO.Id = 3; user_good = ControllerDataToUse.UserDTO; HttpContextManager.SetCurrentContext(new MockHttpContext(user_good.UserName).CustomHttpContextBase); //Assert await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.EnterGame(game_bad.Id), "Valid user can join game with invalid id."); await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.EnterGame(game_good.Id), "3 user can join game with valid id."); Assert.IsInstanceOfType(result_1_good, typeof(ViewResult), "Valid user can't join game with valid id."); }
public override int SaveChanges() { var list = new List <AuditTrail>(); Guid currentUserId = HttpContextManager.GetUserId(); var currentDateTime = DateTime.Now; var dbset = this.Set <AuditTrail>(); var modifiedEntries = ChangeTracker.Entries() .Where(x => (x.State == EntityState.Added || x.State == EntityState.Modified)); if (modifiedEntries != null) { foreach (var entry in modifiedEntries) { Type entity = entry.Entity.GetType(); if (entry.State == EntityState.Added) { #region Add var status = entity.GetProperty(Constant.BaseProperty.StatusId).GetValue(entry.Entity, null); if (status == null || status.Equals(false)) { entity.GetProperty(Constant.BaseProperty.StatusId).SetValue(entry.Entity, true, null); } XElement xml = new XElement("Create"); var itemId = (Guid)entity.GetProperty(Constant.AuditTrailProperty.Id).GetValue(entry.Entity, null); var datatable = GetTableName(entity); var auditTrail = new AuditTrail() { ItemId = itemId, TableName = datatable, ModifiedDate = currentDateTime, ModifiedBy = currentUserId, TrackChange = xml.ToString(), TransactionId = TransactionId, StatusId = true, CreatedDate = currentDateTime, CreatedBy = currentUserId }; list.Add(auditTrail); #endregion } else { #region Modify #region Config XML var originalValues = entry.OriginalValues.Properties.ToDictionary(pn => pn, pn => entry.OriginalValues[pn]); var currentValues = entry.CurrentValues.Properties.ToDictionary(pn => pn, pn => entry.CurrentValues[pn]); XElement xml = new XElement("Change"); foreach (var value in originalValues) { var oldValue = value.Value != null?value.Value.ToString() : string.Empty; var newValue = currentValues[value.Key] != null ? currentValues[value.Key].ToString() : string.Empty; if (oldValue != newValue) { var field = new XElement("field"); var att = new XAttribute("Name", value.Key); field.Add(att); var oldNode = new XElement("OldValue", oldValue); var newNode = new XElement("NewValue", newValue); field.Add(oldNode); field.Add(newNode); xml.Add(field); } } #endregion // Create instance of AuditTrail for edit item // var instanceAuditTrail = Activator.CreateInstance(auditType); var itemId = (Guid)entity.GetProperty(Constant.AuditTrailProperty.Id).GetValue(entry.Entity, null); var datatable = GetTableName(entity); var auditTrail = new AuditTrail() { ItemId = itemId, TableName = datatable, ModifiedDate = currentDateTime, ModifiedBy = currentUserId, TrackChange = xml.ToString(), TransactionId = TransactionId, StatusId = true, CreatedDate = currentDateTime, CreatedBy = currentUserId }; // Insert AuditTrail list.Add(auditTrail); #endregion } #region Update System Fields if (entry.State == EntityState.Added && entity.GetProperty(Constant.BaseProperty.CreatedBy) != null && entity.GetProperty(Constant.BaseProperty.CreatedDate) != null && entity.GetProperty(Constant.BaseProperty.ModifiedBy) != null && entity.GetProperty(Constant.BaseProperty.ModifiedDate) != null) { entity.GetProperty(Constant.BaseProperty.CreatedDate).SetValue(entry.Entity, currentDateTime, null); entity.GetProperty(Constant.BaseProperty.CreatedBy).SetValue(entry.Entity, currentUserId, null); entity.GetProperty(Constant.BaseProperty.ModifiedDate).SetValue(entry.Entity, currentDateTime, null); entity.GetProperty(Constant.BaseProperty.ModifiedBy).SetValue(entry.Entity, currentUserId, null); } else if (entry.State == EntityState.Modified && entity.GetProperty(Constant.BaseProperty.ModifiedBy) != null && entity.GetProperty(Constant.BaseProperty.ModifiedDate) != null) { entity.GetProperty(Constant.BaseProperty.ModifiedDate).SetValue(entry.Entity, currentDateTime, null); entity.GetProperty(Constant.BaseProperty.ModifiedBy).SetValue(entry.Entity, currentUserId, null); } #endregion } } try { var result = base.SaveChanges(); try { dbset.AddRange(list); base.SaveChanges(); } catch (Exception e) { } return(result); } catch (Exception ex) { throw; } }
public async Task ChangeFieldTest() { //Arrange var step_good_1 = new StepModel { FigureId = ControllerDataToUse.FigureDTO.Id.ToString(), CoordsToMove = "2,3", GameId = ControllerDataToUse.GameDTO.Id.ToString(), FigureIdsToDelete = null }; var step_good_2 = new StepModel { FigureId = ControllerDataToUse.FigureDTO.Id.ToString(), CoordsToMove = "2,3", GameId = ControllerDataToUse.GameDTO.Id.ToString(), FigureIdsToDelete = ControllerDataToUse.FigureDTO.Id.ToString() }; var step_bad_1 = new StepModel { FigureId = "123", CoordsToMove = "2,3", GameId = ControllerDataToUse.GameDTO.Id.ToString(), FigureIdsToDelete = null }; var step_bad_2 = new StepModel { FigureId = ControllerDataToUse.FigureDTO.Id.ToString(), CoordsToMove = "2,3", GameId = "123", FigureIdsToDelete = null }; var step_bad_3 = new StepModel { FigureId = ControllerDataToUse.FigureDTO.Id.ToString(), CoordsToMove = "2,3", GameId = ControllerDataToUse.GameDTO.Id.ToString(), FigureIdsToDelete = "123" }; mockGameService = new MockGameService() .MockChangeFigurePos() .MockChangeTurnPriority() .MockDeleteFigure(); mockUserService = new MockUserService() .MockGetUser(); HttpContextManager.SetCurrentContext(new MockHttpContext(ControllerDataToUse.UserDTO.UserName).CustomHttpContextBase); //Act var gameController = new GameController(mockUserService.Object, mockGameService.Object); await gameController.ChangeField(step_good_1); await gameController.ChangeField(step_good_2); await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.ChangeField(step_bad_1), "Can make changes for invalid figure id"); await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.ChangeField(step_bad_2), "Can make changes for invalid game id"); await Assert.ThrowsExceptionAsync <HttpException>(async() => await gameController.ChangeField(step_bad_3), "Can make changes for invalid figure to delete id"); }