File: StringExtensionsTests.cs

package info (click to toggle)
mono-reference-assemblies 3.12.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 604,240 kB
  • ctags: 625,505
  • sloc: cs: 3,967,741; xml: 2,793,081; ansic: 418,042; java: 60,435; sh: 14,833; makefile: 11,576; sql: 7,956; perl: 1,467; cpp: 1,446; yacc: 1,203; python: 598; asm: 422; sed: 16; php: 1
file content (127 lines) | stat: -rw-r--r-- 5,683 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.

namespace System.Data.Entity.Utilities
{
    using System.Data.Entity.Migrations;
    using Xunit;

    public class StringExtensionsTests
    {
        public class EqualsIgnoreCase
        {
            [Fact]
            public void EqualsIgnoreCase_should_ignore_case()
            {
                Assert.True("foo".EqualsIgnoreCase("Foo"));
                Assert.False("Bar".EqualsIgnoreCase("Foo"));
            }

        }

        public class ToDatabaseName
        {
            [Fact]
            public void ToDatabaseName_returns_database_name()
            {
                var databaseName = "dbo.Customers".ToDatabaseName();

                Assert.Equal("dbo", databaseName.Schema);
                Assert.Equal("Customers", databaseName.Name);
            }
        }

        public class IsValidMigrationId
        {
            [Fact]
            public void IsValid_should_correctly_validate_ids()
            {
                Assert.False("Foo".IsValidMigrationId());
                Assert.False("11111111111111_Foo".IsValidMigrationId());
                Assert.False("11111111111111Foo".IsValidMigrationId());
                Assert.True("111111111111111_Foo".IsValidMigrationId());
                Assert.True(DbMigrator.InitialDatabase.IsValidMigrationId());
            }
        }

        public class IsAutomaticMigration
        {
            [Fact]
            public void IsAutomatic_detects_automatic_migration_names()
            {
                Assert.True("111111111111111_AutomaticMigration".IsAutomaticMigration());
                Assert.True("111111111111111_Foo_AutomaticMigration".IsAutomaticMigration());
                Assert.False("111111111111111_Foo".IsAutomaticMigration());
            }
        }

        public class RestrictTo
        {
            [Fact]
            public void RestrictTo_should_limit_string_length()
            {
                Assert.Equal("123", "123".RestrictTo(5));
                Assert.Equal("123", "123".RestrictTo(3));
                Assert.Equal("123", "12345".RestrictTo(3));
                Assert.Equal("", "12345".RestrictTo(0));
                Assert.Equal("", "".RestrictTo(0));
                Assert.Equal(null, StringExtensions.RestrictTo(null, 0));
            }
        }

        public class ToAutomaticMigrationId
        {
            [Fact]
            public void ToAutomaticMigrationId_should_rewind_timestamp_and_append_auto_string()
            {
                Assert.Equal("201205054534555_Foo_AutomaticMigration", "201205054534556_Foo".ToAutomaticMigrationId());
                Assert.Equal("111111111111109_Foo_AutomaticMigration", "111111111111110_Foo".ToAutomaticMigrationId());
            }
        }

        public class IsValidUndottedName
        {
            [Fact]
            public void Null_or_empty_strings_are_not_valid()
            {
                Assert.False(((string)null).IsValidUndottedName());
                Assert.False("".IsValidUndottedName());
                Assert.False(" ".IsValidUndottedName());
            }

            [Fact]
            public void Strings_that_dont_start_with_a_valid_characeter_are_not_valid()
            {
                Assert.False("_PinkyPie".IsValidUndottedName());
                Assert.False(" RainbowDash".IsValidUndottedName());
                Assert.False("-AppleJack".IsValidUndottedName());
                Assert.False("\u033CFlutterShy".IsValidUndottedName()); // Non-spacing mark (Combining seagull below)
                Assert.False("\u0940TwighlightSparkle".IsValidUndottedName()); // Spacing-combining mark (Devanagari vowel sign II)
                Assert.False("\uFE4FRarity".IsValidUndottedName()); // Connector punctuation (Wavy low line)
                Assert.False("6PrincessCelestia".IsValidUndottedName()); // Decimal digit number
                Assert.False("\U0001F40ESpike".IsValidUndottedName()); // Other (Horse)
                Assert.False("\u2061NightmareMoon".IsValidUndottedName()); // Other, format (Function application)
            }

            [Fact]
            public void Strings_that_contain_internal_invalid_characeters_are_not_valid()
            {
                Assert.False("Rainbow Dash".IsValidUndottedName());
                Assert.False("Apple-Jack".IsValidUndottedName());
                Assert.False("Shining\U0001F40EArmor".IsValidUndottedName()); // Other (Horse)
                Assert.False("Nightmare\u2061Moon".IsValidUndottedName()); // Other, format (Function application)
            }

            [Fact]
            public void Strings_that_have_only_valid_characters_are_valid()
            {
                Assert.True("Pinky_Pie".IsValidUndottedName());
                Assert.True("Flutter\u033CShy".IsValidUndottedName()); // Non-spacing mark (Combining seagull below)
                Assert.True("Twighlight\u0940Sparkle".IsValidUndottedName()); // Spacing-combining mark (Devanagari vowel sign II)
                Assert.True("Rarity\uFE4F".IsValidUndottedName()); // Connector punctuation (Wavy low line)
                Assert.True("Princess6Celestia".IsValidUndottedName()); // Decimal digit number
                Assert.True("\u2165Zecora".IsValidUndottedName()); // Number, letter (Roman numeral 6)
                Assert.True("Princess\u2165Celestia".IsValidUndottedName()); // Number, letter (Roman numeral 6)
            }
        }
    }
}