public void LevelUpBadgeTest() { var user = new DefaultUser("Language"); var experience = new LanguageExperience("Language", ".\\Contents\\Level\\lvlUpTest.prop", "cs"); experience.AddExperience(10); user.ExperiencePoints.Add("cs", experience); var badge = new LanguageFirstCSharpLevel(); badge.Compute(user); Assert.IsTrue(badge.Gained); }
public void ModifedBadgeEarnedTest() { var model = new SVNModel(); model.AddModified(2); var badge = new SVNModified(); var p = new SVNPlugin(); p.LoadDBMaps(); p.LoadBadges(); var user = new DefaultUser("teste"); user.ExtensionPoint.Add("SVNExtension", model); badge.Compute(user); Assert.AreEqual(true, badge.Gained); }
public List<IUser> Read(string xmlPath) { log.InfoFormat("Reading svn : {0}", xmlPath); if (string.IsNullOrWhiteSpace(xmlPath)) { throw new ArgumentNullException("xmlPath"); } var result = new List<IUser>(); try { var results = new Stack<IUser>(); var svnModel = new SVNModel(); var doc = new XmlDocument(); var xpath = string.Format("//logentry[@revision>'{0}']/paths/path", CurrentRevision); var xpathMaximumCurrentRevision = "/log/logentry/@revision[not(. < ../../logentry/@revision)][1]"; var userDict = new Dictionary<string, IUser>(); IUser user = null; doc.Load(xmlPath); CurrentRevision = Convert.ToInt32(doc.SelectNodes(xpathMaximumCurrentRevision)[0].Value) + 1; foreach (XmlNode node in doc.SelectNodes(xpath)) { var currentUser = node.ParentNode.ParentNode.SelectSingleNode("author").InnerText; var currentDate = node.ParentNode.ParentNode.SelectSingleNode("date").InnerText; log.DebugFormat("current user : {0}", currentUser); log.DebugFormat("currnet date : {0}", currentDate); if (userDict.Keys.Count > 0) { if (userDict.Keys.Contains(currentUser)) { user = userDict[currentUser]; } else { user = new DefaultUser(currentUser); userDict.Add(currentUser, user); } } else { user = new DefaultUser(currentUser); userDict.Add(currentUser, user); } if (!(user.ExtensionPoint.Keys.Count > 0)) { user.ExtensionPoint.Add("LanguageExtension", new LanguageBuilder()); user.ExtensionPoint.Add("SVNExtension", new SVNModel()); } var action = node.Attributes["action"].Value; var kind = node.InnerText; var modelLanguage = LanguageBuilder.TransformPathToLanguageModel(kind); ((LanguageBuilder)user.ExtensionPoint["LanguageExtension"]).AddLanguage(modelLanguage); Infos.Add(SVNBuilder.AddInfo(action, currentUser, DateTime.ParseExact(currentDate, "yyyy-MM-ddTHH:mm:ss.ffffffZ", CultureInfo.InstalledUICulture))); user.ExtensionPoint["SVNExtension"] = SVNBuilder.AddAction(action, ((SVNModel)user.ExtensionPoint["SVNExtension"])); } foreach (var key in userDict.Keys) { result.Add(userDict[key]); } } catch (Exception ex) { log.ErrorFormat("Message : {0}", ex.Message); log.ErrorFormat("StackTrace : {0}", ex.StackTrace); return result; } return result; }