コード例 #1
0
        public async Task GenerateStructAsync_GeneratesStruct_WithJsonConverter()
        {
            // Arrange
            var context = new EntityIdGenerationContext(
                SyntaxFactory.StructDeclaration("EntityId"),
                typeConverter: false,
                jsonNetConverter: true);

            // Act
            var @struct = await Int32EntityIdSyntaxGenerator.GenerateStructAsync(context);

            // Assert
            Assert.NotNull(@struct);
            Assert.Equal("EntityId", @struct.Identifier.ValueText);

            AssertHasModifier(@struct, SyntaxKind.ReadOnlyKeyword);
            AssertHasAttribute(@struct, "System.Diagnostics.DebuggerDisplay",
                               attribute =>
            {
                Assert.Equal("(\"{DebuggerToString(),nq}\")", attribute.ArgumentList.ToString());
            }
                               );
            AssertDoesNotHaveAttribute(@struct, "System.ComponentModel.TypeConverter");
            AssertHasAttribute(@struct, "Newtonsoft.Json.JsonConverter",
                               attribute =>
            {
                Assert.Equal("(typeof(EntityIdJsonConverter))", attribute.ArgumentList.ToString());
            }
                               );
        }
コード例 #2
0
        public async Task GenerateStructAsync_GeneratesStruct_WithEmptyField()
        {
            // Arrange
            var context = new EntityIdGenerationContext(
                SyntaxFactory.StructDeclaration("EntityId"),
                typeConverter: false,
                jsonNetConverter: false);

            // Act
            var @struct = await Int32EntityIdSyntaxGenerator.GenerateStructAsync(context);

            // Assert
            AssertHasField(
                @struct,
                name: "Empty",
                type: "EntityId",
                (member, variable) =>
            {
                AssertHasModifier(member, SyntaxKind.PublicKeyword);
                AssertHasModifier(member, SyntaxKind.StaticKeyword);
                AssertHasModifier(member, SyntaxKind.ReadOnlyKeyword);

                Assert.NotNull(variable.Initializer);
                Assert.Equal("= new EntityId()", variable.Initializer.ToString());
            });
        }
コード例 #3
0
        public async Task GenerateStructAsync_GeneratesStruct_WithValueProperty()
        {
            // Arrange
            var context = new EntityIdGenerationContext(
                SyntaxFactory.StructDeclaration("EntityId"),
                typeConverter: false,
                jsonNetConverter: false);

            // Act
            var @struct = await Int32EntityIdSyntaxGenerator.GenerateStructAsync(context);

            // Assert
            AssertHasProperty(
                @struct,
                name: "Value",
                type: "int",
                (member) =>
            {
                AssertHasModifier(member, SyntaxKind.PublicKeyword);

                AssertHasAccessor(member, SyntaxKind.GetAccessorDeclaration);
                AssertDoesNotHaveAccessor(member, SyntaxKind.SetAccessorDeclaration);
            });
        }