示例#1
0
        public void Controller_AvatarSelectShop_Select_Data_Invalid_ItemId_Bogus_Should_Fail()
        {
            // Arrange
            var controller = new AvatarSelectController();

            var data = new ShopBuyViewModel
            {
                StudentId = DataSourceBackend.Instance.StudentBackend.GetDefault().Id,
                ItemId    = "bogus"
            };

            // Act
            var result = (RedirectToRouteResult)controller.Select(data);

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("Select", result.RouteValues["action"], TestContext.TestName);
        }
示例#2
0
        public void Controller_AvatarSelectShop_Select_Get_myDataIsNull_ShouldReturnErrorPage()
        {
            // Arrange
            var controller = new AvatarSelectController();
            var id         = DataSourceBackend.Instance.StudentBackend.GetDefault().Id;

            // Reset DataSourceBackend
            DataSourceBackend.Instance.Reset();
            DataSourceBackend.SetTestingMode(true);

            // Act
            var result = (RedirectToRouteResult)controller.Select(id);

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
            Assert.AreEqual("Home", result.RouteValues["controller"], TestContext.TestName);
        }
示例#3
0
        public void Controller_AvatarSelectShop_Edit_Data_Invalid_StudentId_Bogus_Should_Fail()
        {
            // Arrange
            var controller = new AvatarSelectController();

            var data = new AvatarItemInputModel
            {
                StudentId = "bogus",
                ItemId    = "itemID"
            };

            // Act
            var result = (RedirectToRouteResult)controller.Edit(data);

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("Index", result.RouteValues["action"], TestContext.TestName);
        }
示例#4
0
        public void Controller_AvatarSelectShop_Select_Data_Valid_Limited_Should_Pass()
        {
            // Arrange
            var controller = new AvatarSelectController();

            var data = new ShopBuyViewModel
            {
                StudentId = DataSourceBackend.Instance.StudentBackend.GetDefault().Id,
                ItemId    = DataSourceBackend.Instance.AvatarItemBackend.GetFirstAvatarItemId()
            };

            // Get the Student Record and Add some Tokens to it.
            var myStudent = DataSourceBackend.Instance.StudentBackend.Read(data.StudentId);

            myStudent.Tokens = 1000;

            // Clear the Student AvatarInventory, so one can be purchanged.
            myStudent.AvatarInventory.Clear();
            DataSourceBackend.Instance.StudentBackend.Update(myStudent);

            // Get the Item Record and Set the Token Value
            var myInventory = DataSourceBackend.Instance.AvatarItemBackend.Read(data.ItemId);

            myInventory.Tokens        = 10;
            myInventory.IsLimitSupply = true;

            DataSourceBackend.Instance.AvatarItemBackend.Update(myInventory);

            var expect = myStudent.Tokens - myInventory.Tokens;

            // Act
            ViewResult result = controller.Select(data) as ViewResult;

            var myStudent2 = DataSourceBackend.Instance.StudentBackend.Read(data.StudentId);

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual(expect, myStudent2.Tokens, TestContext.TestName);
        }
示例#5
0
        public void Controller_AvatarSelectShop_Edit_InValid_AvatarComposite_Null_Should_Fail()
        {
            // Arrange
            var controller = new AvatarSelectController();
            var data       = DataSourceBackend.Instance.StudentBackend.GetDefault();

            data.AvatarComposite = null;
            DataSourceBackend.Instance.StudentBackend.Update(data);

            var item = DataSourceBackend.Instance.AvatarItemBackend.GetDefault(AvatarItemCategoryEnum.Accessory);

            // Act
            var result = controller.Edit(data.Id, item.Id) as RedirectToRouteResult;

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
            Assert.AreEqual("Home", result.RouteValues["controller"], TestContext.TestName);
        }
示例#6
0
        public void Controller_AvatarSelectShop_Inventory_ItemIsNotNull_Should_Pass()
        {
            // Arrange
            var controller    = new AvatarSelectController();
            var student       = new StudentModel();
            var InventoryList = DataSourceBackend.Instance.AvatarItemBackend.Index();

            student.Id = DataSourceBackend.Instance.StudentBackend.GetDefault().Id;

            // Act
            student.AvatarInventory = InventoryList;
            DataSourceBackend.Instance.StudentBackend.Update(student);

            ViewResult result = controller.Inventory(student.Id) as ViewResult;

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
示例#7
0
        public void Controller_AvatarSelectShop_Select_Data_InValid_Tokens_Less_Than_One_Should_Fail()
        {
            // Arrange
            var controller = new AvatarSelectController();

            var data = new ShopBuyViewModel
            {
                StudentId = DataSourceBackend.Instance.StudentBackend.GetDefault().Id,
                ItemId    = DataSourceBackend.Instance.AvatarItemBackend.GetFirstAvatarItemId()
            };

            // Get the Student Record and Add some Tokens to it.
            var myStudent = DataSourceBackend.Instance.StudentBackend.Read(data.StudentId);

            myStudent.Tokens = 0;
            DataSourceBackend.Instance.StudentBackend.Update(myStudent);

            // Get the Item Record and Set the Token Value
            var myInventory = DataSourceBackend.Instance.AvatarItemBackend.Read(data.ItemId);

            myInventory.Tokens = 0;
            DataSourceBackend.Instance.AvatarItemBackend.Update(myInventory);

            // No Purchase, so tokens stay the same
            var expect      = myStudent.Tokens;
            var expectCount = myStudent.AvatarInventory.Count();

            // Act
            var result = (RedirectToRouteResult)controller.Select(data);

            var myStudent2 = DataSourceBackend.Instance.StudentBackend.Read(data.StudentId);

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("Select", result.RouteValues["action"], TestContext.TestName);
            Assert.AreEqual(expect, myStudent2.Tokens, TestContext.TestName);
            Assert.AreEqual(expectCount, myStudent2.AvatarInventory.Count(), TestContext.TestName);
        }
示例#8
0
        public void Controller_AvatarSelectShop_Index_With_Empty_List_Should_Return_Error_Page()
        {
            // Arrange
            var controller = new AvatarSelectController();

            // Set unitesting backend data
            DataSourceBackend.Instance.SetDataSourceDataSet(DataSourceDataSetEnum.UnitTest);

            // Make empty StudentList
            while (DataSourceBackend.Instance.StudentBackend.Index().Count != 0)
            {
                var first = DataSourceBackend.Instance.StudentBackend.GetDefault();
                DataSourceBackend.Instance.StudentBackend.Delete(first.Id);
            }

            // Act
            var result = (RedirectToRouteResult)controller.Index();

            // Reset DataSourceBackend
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
        }