コード例 #1
0
        public void CanForbidNameForbiddenInUpperScopeAndCanMethodsReturnAsExpected()
        {
            var _upperScopeNaming = new SyntaxerNamingContext(null);

            Assert.True(_upperScopeNaming.CanForbidName("name"));
            Assert.True(_upperScopeNaming.CanUseName("name"));

            Assert.True(_upperScopeNaming.TryForbidName("name"));

            Assert.True(_upperScopeNaming.CanForbidName("name"));
            Assert.False(_upperScopeNaming.CanUseName("name"));

            var _naming = new SyntaxerNamingContext(_upperScopeNaming);

            Assert.True(_upperScopeNaming.CanForbidName("name"));
            Assert.False(_upperScopeNaming.CanUseName("name"));

            Assert.True(_naming.CanForbidName("name"));
            Assert.True(_naming.CanUseName("name"));

            Assert.True(_naming.TryForbidName("name"));

            Assert.True(_upperScopeNaming.CanForbidName("name"));
            Assert.False(_upperScopeNaming.CanUseName("name"));

            Assert.True(_naming.CanForbidName("name"));
            Assert.False(_naming.CanUseName("name"));
        }
コード例 #2
0
        public void CanForbidNameForbiddenInUpperScope()
        {
            var _upperScopeNaming = new SyntaxerNamingContext(null);
            Assert.True(_upperScopeNaming.TryForbidName("name"));

            var _naming = new SyntaxerNamingContext(_upperScopeNaming);
            Assert.True(_naming.TryForbidName("name"));
        }
コード例 #3
0
        public void UseNameUsesName()
        {
            var _naming = new SyntaxerNamingContext(null);

            Assert.True(_naming.CanUseName("name"));

            SyntaxerNamingContextExtensions.UseName(
                _naming,
                "name");

            Assert.False(_naming.CanUseName("name"));
        }
コード例 #4
0
        public void UseNameThrowsWhenNameUsed()
        {
            var _naming = new SyntaxerNamingContext(null);

            _naming.TryUseName("name");
            Assert.False(_naming.CanUseName("name"));

            Assert.Throws<SyntaxerNameAlreadyReservedException>(() =>
                {
                    SyntaxerNamingContextExtensions.UseName(
                        _naming,
                        "name");
                });
        }
コード例 #5
0
        public void CanForbidNameOnEmptyContextAndCanMethodsReturnAsExpected()
        {
            var _naming = new SyntaxerNamingContext(null);

            Assert.True(_naming.CanUseName("name"));
            Assert.True(_naming.CanForbidName("name"));

            Assert.True(_naming.TryForbidName("name"));

            Assert.True(_naming.CanForbidName("name"));
            Assert.False(_naming.CanUseName("name"));
        }
コード例 #6
0
        public void CanForbidNameOnEmptyContext()
        {
            var _naming = new SyntaxerNamingContext(null);

            Assert.True(_naming.TryForbidName("name"));
        }
コード例 #7
0
        public void CannotUseSameNameTwice()
        {
            var _naming = new SyntaxerNamingContext(null);

            Assert.True(_naming.TryUseName("name"));
            Assert.False(_naming.TryUseName("name"));
        }
コード例 #8
0
        public void CanUseDifferentNames()
        {
            var _naming = new SyntaxerNamingContext(null);

            Assert.True(_naming.TryUseName("name"));
            Assert.True(_naming.TryUseName("Name"));
            Assert.True(_naming.TryUseName("NAME"));
            Assert.True(_naming.TryUseName("_name"));
            Assert.True(_naming.TryUseName(" name"));
            Assert.True(_naming.TryUseName("name "));
            Assert.True(_naming.TryUseName("_"));
            Assert.True(_naming.TryUseName(""));
            Assert.True(_naming.TryUseName(" "));
            Assert.True(_naming.TryUseName("@"));
            Assert.True(_naming.TryUseName("!"));
            Assert.True(_naming.TryUseName("o"));
            Assert.True(_naming.TryUseName("ö"));
            Assert.True(_naming.TryUseName("ø"));
            Assert.True(_naming.TryUseName("\r"));
            Assert.True(_naming.TryUseName("\n"));
            Assert.True(_naming.TryUseName("\r\n"));
            Assert.True(_naming.TryUseName("\n\r"));
        }
コード例 #9
0
        public void CannotUseNameUsedInUpperScope()
        {
            var _upperScopeNaming = new SyntaxerNamingContext(null);
            Assert.True(_upperScopeNaming.TryUseName("name"));

            var _naming = new SyntaxerNamingContext(_upperScopeNaming);
            Assert.False(_naming.TryUseName("name"));
        }
コード例 #10
0
        public void CannotUseNameUsedInLowerScopeAndCanMethodsReturnAsExpected()
        {
            var _naming = new SyntaxerNamingContext(null);
            var _lowerScopeNaming = new SyntaxerNamingContext(_naming);

            Assert.True(_naming.CanUseName("name"));
            Assert.True(_naming.CanForbidName("name"));

            Assert.True(_lowerScopeNaming.CanUseName("name"));
            Assert.True(_lowerScopeNaming.CanForbidName("name"));

            Assert.True(_lowerScopeNaming.TryUseName("name"));

            Assert.False(_naming.CanUseName("name"));
            Assert.True(_naming.CanForbidName("name"));

            Assert.False(_lowerScopeNaming.CanUseName("name"));
            Assert.False(_lowerScopeNaming.CanForbidName("name"));

            Assert.False(_naming.TryUseName("name"));

            Assert.False(_naming.CanUseName("name"));
            Assert.True(_naming.CanForbidName("name"));

            Assert.False(_lowerScopeNaming.CanUseName("name"));
            Assert.False(_lowerScopeNaming.CanForbidName("name"));
        }
コード例 #11
0
        public void CannotUseNameForbiddenInLowerScope()
        {
            var _naming = new SyntaxerNamingContext(null);
            var _lowerScopeNaming = new SyntaxerNamingContext(_naming);

            Assert.True(_lowerScopeNaming.TryForbidName("name"));

            Assert.False(_naming.TryUseName("name"));
        }
コード例 #12
0
        public void CannotUseForbiddenName()
        {
            var _naming = new SyntaxerNamingContext(null);

            Assert.True(_naming.TryForbidName("name"));
            Assert.False(_naming.TryUseName("name"));
        }
コード例 #13
0
ファイル: SyntaxerContext.cs プロジェクト: Nerven/Syntaxer
 public _DisposableSyntaxerContext(SyntaxerNamingContext naming)
 {
     _Syntaxer = new SyntaxerContext(naming);
     _Naming = naming;
 }