Exemple #1
0
        public void CreateProjectTest()
        {
            MsSqlFactory        factory      = new MsSqlFactory(Common.Connectionconfig);
            MsSqlDataProvider   provider     = factory.CreateDBProvider() as MsSqlDataProvider;
            IUserAccessProvider userProvider = factory.CreateUserAccessProvider();
            SignUpModel         userData     = new SignUpModel()
            {
                Login    = "******",
                EMail    = "*****@*****.**",
                Password = "******"
            };

            provider.AddUser(userData);
            EUser userModel = userProvider.GetUserByLoginMail("*****@*****.**");

            ProjectModel model = new ProjectModel(provider)
            {
                ProjectDetails = new EProject()
                {
                    Description = "Project description",
                    ProjectName = "Test project name"
                },
                //UserIds = new System.Collections.Generic.List<decimal>()
                //{
                //    userModel.Id
                //}
            };

            try
            {
                provider.CreateProject(model);
                Assert.IsTrue(model.ProjectDetails.Id > 0, "Project id less than 1.");

                ProjectModel selectedProjectModel = new ProjectModel()
                {
                    ProjectDetails = provider.GetProjectById(model.ProjectDetails.Id)
                };
                Assert.IsNotNull(
                    selectedProjectModel,
                    $"Unable to retrieve project with id \'{model.ProjectDetails.Id}\'");
                Assert.AreEqual(
                    model.ProjectDetails.ProjectName,
                    selectedProjectModel.ProjectDetails.ProjectName);
                Assert.AreEqual(
                    model.ProjectDetails.Description,
                    selectedProjectModel.ProjectDetails.Description);

                //Check users
                //using (DragonflyEntities ents = provider.GenerateContext())
                //{
                //    var projectUsers = (from usr in ents.User_Project
                //                        where usr.ID_Project == selectedProjectModel.ProjectId
                //                        select usr).ToList();
                //    Assert.IsTrue(projectUsers.All(pu => model.UserIds.Contains(pu.ID_User)),
                //        "Not all users added to project management.");
                //}
            }
            finally
            {
                if (model != null && model.ProjectDetails.Id > 0)
                {
                    provider.DeleteProject(model.ProjectDetails.Id);
                }
                using (DragonflyEntities ents = provider.GenerateContext())
                {
                    DeleteUserFromDB(ents, userData.Login, userData.EMail);
                }
            }
        }