public void Should_return_false_if_language_url_is_not_valid(string url) { var sut = new LanguageRules(new Mock <ILanguageRepository>().Object); var actual = sut.IsLanguageUrlValid(url); Assert.AreEqual(false, actual); }
public void Should_return_true_if_language_name_is_valid(string name) { var sut = new LanguageRules(new Mock <ILanguageRepository>().Object); var actual = sut.IsLanguageNameValid(name); Assert.AreEqual(true, actual); }
public void Should_return_false_if_culture_name_is_not_valid(string cultureName) { var sut = new LanguageRules(new Mock <ILanguageRepository>().Object); var actual = sut.IsCultureNameValid(cultureName); Assert.AreEqual(false, actual); }
/// <summary> /// Color codes a block of source code using the specified language /// </summary> /// <param name="code">Source code to format</param> /// <param name="rules">Language rules to use for formatting</param> /// <returns></returns> public string Colorize(string code, LanguageRules rules) { Debug.Assert(code != null); Debug.Assert(rules != null); if (code == null) throw new ArgumentNullException("code"); if (rules == null) throw new ArgumentNullException("rules"); // CSS class lookup table Dictionary<TokenClass, string> cssClasses = new Dictionary<TokenClass, string> { { TokenClass.Keyword, CssClassKeyword }, { TokenClass.Symbol, CssClassSymbol }, { TokenClass.String, CssClassString }, { TokenClass.Operator, CssClassOperator }, { TokenClass.Comment, CssClassComment }, }; // Tokenize source code according to the specified language rules StringBuilder builder = new StringBuilder(); LanguageTokenizer tokenizer = new LanguageTokenizer(rules, code); for (Token token = tokenizer.ParseNext(); token.Class != TokenClass.EndOfText; token = tokenizer.ParseNext()) { token.Value = WebUtility.HtmlEncode(token.Value); string style; if (cssClasses.TryGetValue(token.Class, out style) && !String.IsNullOrWhiteSpace(style)) builder.AppendFormat("<span class=\"{0}\">{1}</span>", style, token.Value); else builder.Append(token.Value); } return builder.ToString(); }
private static CodeColorizer GetColorizer(LanguageRules rules) => new CodeColorizer(rules) { CommentCssClass = "comment", KeywordCssClass = "keyword", OperatorCssClass = "operator", StringCssClass = "string", SymbolCssClass = "symbol", };
public void Should_return_true_if_language_id_is_unique() { var id = Guid.NewGuid(); var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetById(id)).Returns((Language)null); var sut = new LanguageRules(repositoryMock.Object); var actual = sut.IsLanguageIdUnique(id); Assert.AreEqual(true, actual); }
public void Should_return_true_if_language_name_is_unique() { var siteId = Guid.NewGuid(); var name = "My Language"; var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetByName(siteId, name)).Returns((Language)null); var sut = new LanguageRules(repositoryMock.Object); var actual = sut.IsLanguageNameUnique(siteId, name); Assert.AreEqual(true, actual); }
public void Should_return_true_if_language_url_is_unique() { var siteId = Guid.NewGuid(); var url = "my-language"; var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetByUrl(siteId, url)).Returns((Language)null); var sut = new LanguageRules(repositoryMock.Object); var actual = sut.IsLanguageUrlUnique(siteId, url); Assert.AreEqual(true, actual); }
public void Should_return_false_if_culture_name_is_not_unique() { var siteId = Guid.NewGuid(); var cultureName = "aa-bb"; var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetByCultureName(siteId, cultureName)).Returns(new Language()); var sut = new LanguageRules(repositoryMock.Object); var actual = sut.IsCultureNameUnique(siteId, cultureName); Assert.AreEqual(false, actual); }
public void Should_return_true_if_all_languages_are_included() { var siteId = Guid.NewGuid(); var languageId1 = Guid.NewGuid(); var languageId2 = Guid.NewGuid(); var ids = new List <Guid> { languageId1, languageId2 }; var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetLanguagesIdList(siteId)).Returns(new List <Guid> { languageId1, languageId2 }); var sut = new LanguageRules(repositoryMock.Object); var actual = sut.AreAllSupportedLanguagesIncluded(siteId, ids); Assert.AreEqual(true, actual); }
internal LanguageTokenizer(LanguageRules rules, string script) : base(script) { _rules = rules; }