public void EditVolunteerTest() { #region init IdentityHelper ihelper = IdentityHelper.GetInstance(); string userName = "******"; AppUser user = new AppUser { AccountName = userName, Name = "James", Mobile = "1888888888", Email = "*****@*****.**" }; string password = "******"; AppUser dbUser = database.Users.SingleOrDefault(u => u.AccountName == userName); if (dbUser != null) { database.Users.Remove(dbUser); database.SaveChanges(); } IdentityResult result1 = ihelper.CreateUser(user, password, AppRoleEnum.OrgnizationMember, OrganizationEnum.SEA团队); testclaims = ihelper.CreateClaims(userName, password, userName); helper = VolunteerHelper.GetInstance(testclaims); #endregion #region 新建一个志愿者对象 Volunteer v = new Volunteer { StudentNum = 0401, Name = "EditTestName", Class = "TestClass", Email = "*****@*****.**", Room = "testroom" }; helper.AddVolunteer(v); #endregion #region 第一次修改 v.Name = "ModifiedEditTestName"; var tempvolunteer = helper.FindVolunteer(v.StudentNum); helper.EditVolunteer(tempvolunteer, v);//需要重建一个volunteer实体,因为实体v在加入数据库之后会自动更新链接到数据库中的条目。 tempvolunteer = helper.FindVolunteer(v.StudentNum); if (!Volunteer.AreSame(v, tempvolunteer)) { Assert.Fail("修改志愿者信息失败"); } #endregion #region 第二次修改 v.Name = "EditByParamTestName"; tempvolunteer = helper.FindVolunteer(v.StudentNum); helper.EditVolunteer(tempvolunteer, v.StudentNum, v.Name); tempvolunteer = helper.FindVolunteer(v.StudentNum); if (!Volunteer.AreSame(v, tempvolunteer)) { Assert.Fail("第二次修改志愿者信息失败"); } #endregion var result3 = helper.FindVolunteer(v.StudentNum); database.Volunteers.Remove(result3);//Remove }
public void AddBlackListTest() { // 创建第一个volunteer Random tempnum = new Random(); int studentnum = tempnum.Next(000, 999); Guid uid = Guid.NewGuid(); string name = uid.ToString(); Volunteer v1 = new Volunteer() { //Id = 000, StudentNum = studentnum, Mobile = "1234567890-", Name = name, Email = "*****@*****.**", Class = "AddTestClass", Room = "AddTestRoom" }; volunteerhelper.AddVolunteer(v1); v1 = database.Volunteers.Single(b => b.StudentNum == v1.StudentNum); // 创建一个adder Guid temp = Guid.NewGuid(); string appusername = temp.ToString(); Random rnd = new Random(); int usertempnum = rnd.Next(000, 999); int usernum = usertempnum; AppUser adder = new AppUser() { AccountName = appusername, StudentNum = usernum, Mobile = "1234567890", Email = "*****@*****.**" }; identityhelper.CreateUser(adder, "23457890-", AppRoleEnum.OrgnizationMember, OrganizationEnum.TestOnly); adder = database.Users.Single(a => a.AccountName == adder.AccountName); // 创建一个org Organization org = identityhelper.CreateOrFindOrganization(OrganizationEnum.TestOnly); // 创建一个pro Guid prouid = Guid.NewGuid(); string proname = uid.ToString(); Project pro = new Project() { Name = proname, Place = "testplace", Organization = org }; projectmanagerhelper.CreatNewProject(org, System.DateTime.Now, pro.Name, pro.Place, "", 70); pro = database.Projects.Single(p => p.Name == pro.Name); // 添加第一条黑名单记录 BlackListRecord testaddrecord1 = new BlackListRecord { //Id = 1234567890, Volunteer = database.Volunteers.Single(b => b.StudentNum == v1.StudentNum), Adder = database.Users.Single(b => b.StudentNum == adder.StudentNum), Status = BlackListRecordStatus.Enabled, Organization = org, EndTime = new DateTime(2090, 2, 11), AddTime = System.DateTime.Now, Project = database.Projects.Single(b => b.Name == pro.Name) }; BlackListResult result = helper.AddBlackListRecord(testaddrecord1); if (!result.Succeeded) { Assert.Fail("返回错误结果!请检查后重试"); } var actual = helper.FindBlackList(v1); if (actual == null) { Assert.Fail("记录添加失败!数据库无此记录!"); } // 测试ExistingRecord BlackListRecord testaddrecord3 = new BlackListRecord { //Id = 0987654321 Volunteer = v1, Adder = adder, Status = BlackListRecordStatus.Enabled, Organization = org, EndTime = new DateTime(2090, 2, 11), AddTime = System.DateTime.Now, Project = pro }; BlackListResult existingrecordresult = helper.AddBlackListRecord(testaddrecord3); //Assert.AreEqual(existingrecordresult, BlackListResult.AddBlackListRecordErrorEnum.ExistingRecord, "检验existingrecord失败!"); if (!BlackListResult.AreSame(BlackListResult.Error(BlackListResult.AddBlackListRecordErrorEnum.ExistingRecord), existingrecordresult)) { Assert.Fail(); } // 测试WrongTime BlackListRecord testaddrecord4 = new BlackListRecord { EndTime = new DateTime(2017, 2, 1), AddTime = System.DateTime.Now }; var wrongtimeresult = helper.AddBlackListRecord(testaddrecord4); //Assert.AreEqual(wrongtimeresult, BlackListResult.AddBlackListRecordErrorEnum.WrongTime, "测试wrongtime失败!"); if (!BlackListResult.AreSame(BlackListResult.Error(BlackListResult.AddBlackListRecordErrorEnum.WrongTime), wrongtimeresult)) { Assert.Fail(); } // 测试Nullrecord BlackListRecord testaddrecord5 = new BlackListRecord(); var nullrecordresult = helper.AddBlackListRecord(testaddrecord5); //Assert.AreEqual(nullrecordresult, BlackListResult.AddBlackListRecordErrorEnum.NullRecord, "测试nullrecord失败!"); if (!BlackListResult.AreSame(BlackListResult.Error(BlackListResult.AddBlackListRecordErrorEnum.NullRecord), nullrecordresult)) { Assert.Fail(); } //清空数据库 DeleteOrgnization(org); // 清空org 同时清空了blacklistrecord和org下的project,users volunteerhelper.DeleteVolunteer(v1.StudentNum); }
public void FindSortedVolunteersByProjectTest() { // 创建org Organization org = identityhelper.CreateOrFindOrganization(Entity.OrganizationEnum.TestOnly); // 创建一个project Guid uid = Guid.NewGuid(); string name = "CreatVolunteerTest" + uid.ToString(); Project pro = new Project { Name = name, Place = "uibe", Maximum = 20, Details = "nothing", Time = DateTime.Now, Condition = Interface.ProjectCondition.Ongoing, Organization = org }; projectmanagehelper.CreatNewProject(org, DateTime.Now, name, "uibe", "nothing", 20); pro = database.Projects.Single(p => p.Name == pro.Name); var addresult = database.Projects.Where(b => b.Name == name); if (addresult == null) { Assert.Fail("添加记录失败!"); } // 向项目中添加志愿者 // 创建两个志愿者 Random random1 = new Random(); int studentnum1 = random1.Next(000, 999); Volunteer v1 = new Volunteer { StudentNum = studentnum1, Name = "FindSortedVolunteersByProject", Class = "testclass", Room = "testroom", Mobile = "18888888888", Score = 4 }; volunteerhelper.AddVolunteer(v1); if (database.Volunteers.Where(v => v.StudentNum == v1.StudentNum).Count() == 0) { Assert.Fail("插入对象失败!"); } Random random2 = new Random(); int studentnum2 = random2.Next(000, 999); Volunteer v2 = new Volunteer { StudentNum = studentnum2, Name = "FindSortedVolunteersByProject", Class = "testclass", Room = "testroom", Mobile = "18888888888", Score = 2 }; volunteerhelper.AddVolunteer(v2); helper.SingleVolunteerInputById(v1.StudentNum, pro); helper.SingleVolunteerInputById(v2.StudentNum, pro); // 测试FindSortedVolunteersByProject var volunteerlist = helper.FindSortedVolunteersByProject(pro); Volunteer testresult = volunteerlist.First(); if (testresult.StudentNum != studentnum1) { Assert.Fail("测试FindSortedVolunteersByProject失败!"); } // 删除数据库的有关数据[org pro vol] volunteerhelper.DeleteVolunteer(v1.StudentNum); volunteerhelper.DeleteVolunteer(v2.StudentNum); DeleteOrgnization(org); }
public void AddVolunteerTest() { #region 插入第一个volunteer对象 int stunum = 888; if (database.Volunteers.Where(o => o.StudentNum == stunum).ToList().Count() > 0) { var existedvolunteer = FindVolunteerByStuNum(stunum); helper.DeleteVolunteer(existedvolunteer); } Volunteer v = new Volunteer { StudentNum = stunum, Mobile = "13812345678", Name = "AddTest", Email = "*****@*****.**", Class = "AddTestClass", Room = "AddTestRoom" }; var result = helper.AddVolunteer(v); var actual = FindVolunteerByStuNum(v.StudentNum); if (!Volunteer.AreSame(v, actual)) { Assert.Fail("插入第一个volunteer对象失败"); } //Assert.AreEqual(v, actual); if (!VolunteerResult.AreSame(result, VolunteerResult.Success())) { Assert.Fail("插入第一个volunteer对象失败"); } #region 插入重复对象 result = helper.AddVolunteer(v.StudentNum, "shadowman"); if (!VolunteerResult.AreSame(VolunteerResult.Error(VolunteerResult.AddVolunteerErrorEnum.SameIdVolunteerExisted, v.StudentNum), result)) { Assert.Fail("插入重复的对象未能正确处理."); } #endregion database.Volunteers.Remove(actual);//Remove #endregion #region 插入第二个volunteer对象 int tempnum = 999; string tempname = "TestVolunteer2"; result = helper.AddVolunteer(tempnum, tempname); if (VolunteerResult.AreSame(result, VolunteerResult.Error(VolunteerResult.AddVolunteerErrorEnum.SameIdVolunteerExisted, tempnum))) { var existedvolunteer = FindVolunteerByStuNum(tempnum); helper.DeleteVolunteer(existedvolunteer); result = helper.AddVolunteer(tempnum, tempname); } actual = FindVolunteerByStuNum(tempnum); if (!VolunteerResult.AreSame(result, VolunteerResult.Success())) { Assert.Fail("插入第二个volunteer对象失败."); } if (actual == null) { Assert.Fail(); } database.Volunteers.Remove(actual);//Remove #endregion #region 插入null志愿者对象 result = helper.AddVolunteer(null); if (!VolunteerResult.AreSame(result, VolunteerResult.Error(VolunteerResult.AddVolunteerErrorEnum.NullVolunteerObject))) { Assert.Fail("插入的null对象未能正确处理."); } #endregion #region 插入学号为0的志愿者对象 result = helper.AddVolunteer(0); if (!VolunteerResult.AreSame(result, VolunteerResult.Error(VolunteerResult.AddVolunteerErrorEnum.EmptyId))) { Assert.Fail("插入的学号为0的对象未能正确处理."); } #endregion }
private void Confirm_Click(object sender, RoutedEventArgs e) { //<Volunteer> finalList = csvGrid.SelectedItems as List<Volunteer>; List <string> errors = new List <string>(); List <csvItemViewModel> succeededList = new List <csvItemViewModel>(); foreach (csvItemViewModel v in csvList) { if (v.Selected) { if (vhelper.FindVolunteer(v.StudentNum) == null) { var addResult = vhelper.AddVolunteer(v.Volunteer); if (!addResult.Succeeded) { errors.Add(addResult.ErrorString); } else { var addToProjectResult = pphelper.SingleVolunteerInputById(v.StudentNum, project); if (!addToProjectResult.Succeeded) { errors.Add(string.Join(",", addToProjectResult.Errors) + "没有成功添加入项目"); } else { succeededList.Add(v); } } } else { var addToProjectResult = pphelper.SingleVolunteerInputById(v.StudentNum, project); if (!addToProjectResult.Succeeded) { errors.Add(string.Join(",", addToProjectResult.Errors) + "没有成功添加入项目"); } else { succeededList.Add(v); } } } } string errorstring = string.Join("\n", errors); if (errorstring != "") { MessageBox.Show(errorstring); } foreach (csvItemViewModel vm in succeededList) { csvList.Remove(vm); } if (csvList.Count != 0) { MessageBox.Show("最终,共往项目中添加:" + succeededList.Count + "位志愿者.\n现在显示的是没有选择的志愿者跟添加失败的志愿者.\n若不需要添加,请关闭该窗口.", "添加成功", MessageBoxButton.OK); ShowCddGrid(); } else { MessageBox.Show("最终,共往项目中添加: " + succeededList.Count + "位志愿者.\n所有列表中的志愿者已经添加完毕."); fatherWindow.Close(); } }