示例#1
0
        /// <summary>
        ///     Adds a basic field to the structure layout.
        /// </summary>
        /// <param name="name">The name of the field.</param>
        /// <param name="type">The type of the field's value.</param>
        /// <param name="offset">The offset (in bytes) of the field from the beginning of the structure.</param>
        public void AddBasicField(string name, StructureValueType type, int offset)
        {
            var field = new BasicField(name, type, offset);

            _fields.Add(field);
            _fieldsByName[name] = field;
        }
示例#2
0
        /// <summary>
        ///   Produces a SQL expression that, when used in the body of a <c>CREATE TABLE</c> statement, declares a
        ///   <see cref="BasicField"/> as a member of the subject Table.
        /// </summary>
        /// <remarks>
        ///   To keep the <see cref="IField"/> interface closed to assemblies outside of Kvasir, the
        ///   <see cref="IField.GenerateDeclaration(IFieldDeclBuilder)"/> method is marked as <c>internal</c>; this
        ///   requires that <see cref="BasicField"/> class implement the method explicitly. This extension method
        ///   allows for natural invocation of the interface method, encapsulating the cast-to-interface required to
        ///   invoke an explicit interface method.
        /// </remarks>
        /// <param name="self">
        ///   The <see cref="BasicField"/> on which the extension method is invoked.
        /// </param>
        /// <param name="builder">
        ///   The <see cref="IFieldDeclBuilder"/> to use to create the declaratory SQL expression.
        /// </param>
        /// <pre>
        ///   <paramref name="self"/> is not <see langword="null"/>
        ///     --and--
        ///   <paramref name="builder"/> is not <see langword="null"/>
        /// </pre>
        /// <returns>
        ///   A <see cref="SqlSnippet"/> whose body declares <paramref name="self"/>.
        /// </returns>
        public static SqlSnippet GenerateSqlDeclaration(this BasicField self, IFieldDeclBuilder builder)
        {
            Debug.Assert(self is not null);
            Debug.Assert(builder is not null);

            return((self as IField).GenerateDeclaration(builder));
        }
示例#3
0
    public void Cancel()
    {
        NidLoad.Text    = "";
        tf_Title.Text   = "";
        ta_Message.Text = "";
        BasicField.Reset();

        BasicField.Disabled = false;
        pnlAnnex.Disabled   = true;
        btn_S.Disabled      = false;
        pnlAnnex.Html       = "请上传附件!";
    }
示例#4
0
        [TestMethod] public void Construct()
        {
            // Arrange
            var name         = new FieldName("Population");
            var dbType       = DBType.Int32;
            var nullability  = IsNullable.No;
            var defaultValue = Option.Some(DBValue.Create(100));

            // Act
            var field = new BasicField(name, dbType, nullability, defaultValue);

            // Assert
            field.Name.Should <FieldName>().Be(name);
            field.DataType.Should().Be(dbType);
            field.Nullability.Should().Be(nullability);
            field.DefaultValue.Should().Be(defaultValue);
        }
示例#5
0
        [TestMethod] public void GenerateDeclarationWithoutDefault()
        {
            // Arrange
            var name        = new FieldName("CapitalCity");
            var dbType      = DBType.Text;
            var nullability = IsNullable.No;
            var field       = new BasicField(name, dbType, nullability, Option.None <DBValue>());
            var mockBuilder = new Mock <IFieldDeclBuilder>();

            // Act
            _ = field.GenerateSqlDeclaration(mockBuilder.Object);

            // Assert
            mockBuilder.Verify(builder => builder.SetName(name));
            mockBuilder.Verify(builder => builder.SetDataType(dbType));
            mockBuilder.Verify(builder => builder.SetNullability(nullability));
            mockBuilder.Verify(builder => builder.Build());
            mockBuilder.VerifyNoOtherCalls();
        }
示例#6
0
        [TestMethod] public void GenerateDeclarationWithDefault()
        {
            // Arrange
            var name         = new FieldName("GDP");
            var dbType       = DBType.UInt32;
            var nullability  = IsNullable.Yes;
            var defaultValue = DBValue.Create(2500000u);
            var field        = new BasicField(name, dbType, nullability, Option.Some(defaultValue));
            var mockBuilder  = new Mock <IFieldDeclBuilder>();

            // Act
            _ = field.GenerateSqlDeclaration(mockBuilder.Object);

            // Assert
            mockBuilder.Verify(builder => builder.SetName(name));
            mockBuilder.Verify(builder => builder.SetDataType(dbType));
            mockBuilder.Verify(builder => builder.SetNullability(nullability));
            mockBuilder.Verify(builder => builder.SetDefaultValue(defaultValue));
            mockBuilder.Verify(builder => builder.Build());
            mockBuilder.VerifyNoOtherCalls();
        }
示例#7
0
 /// <summary>
 ///     Adds a basic field to the structure layout.
 /// </summary>
 /// <param name="name">The name of the field.</param>
 /// <param name="type">The type of the field's value.</param>
 /// <param name="offset">The offset (in bytes) of the field from the beginning of the structure.</param>
 public void AddBasicField(string name, StructureValueType type, int offset)
 {
     var field = new BasicField(name, type, offset);
     _fields.Add(field);
     _fieldsByName[name] = field;
 }