Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #5
0
 private static CodeColorizer GetColorizer(LanguageRules rules) => new CodeColorizer(rules)
 {
     CommentCssClass  = "comment",
     KeywordCssClass  = "keyword",
     OperatorCssClass = "operator",
     StringCssClass   = "string",
     SymbolCssClass   = "symbol",
 };
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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;
 }