Ejemplo n.º 1
0
        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.");
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
 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/");
     //}
 }
Ejemplo n.º 8
0
        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.");
        }
Ejemplo n.º 9
0
        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.");
        }
Ejemplo n.º 10
0
        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;
            }
        }
Ejemplo n.º 11
0
        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");
        }