Пример #1
0
        public void maps_class_to_dynamicparams()
        {
            var result = Parakeet <TestClass> .Generate(_testClass);

            result.ParameterNames.Count().ShouldBe(25);

            result.Get <string>("StringValue").ShouldBe(_testClass.StringValue);
            // result.Get<string?>("NullableStringValue").ShouldBe(_testClass.NullableStringValue);
            result.Get <Guid>("GuidValue").ShouldBe(_testClass.GuidValue);
            result.Get <Guid?>("NullableGuidValue").ShouldBe(_testClass.NullableGuidValue);
            result.Get <char>("CharValue").ShouldBe(_testClass.CharValue);
            result.Get <char?>("NullableCharValue").ShouldBe(_testClass.NullableCharValue);
            result.Get <int>("IntValue").ShouldBe(_testClass.IntValue);
            result.Get <int?>("NullableIntValue").ShouldBe(_testClass.NullableIntValue);
            result.Get <bool>("BoolValue").ShouldBe(_testClass.BoolValue);
            result.Get <bool?>("NullableBoolValue").ShouldBe(_testClass.NullableBoolValue);
            result.Get <decimal>("DecimalValue").ShouldBe(_testClass.DecimalValue);
            result.Get <decimal?>("NullableDecimalValue").ShouldBe(_testClass.NullableDecimalValue);
            result.Get <long>("LongValue").ShouldBe(_testClass.LongValue);
            result.Get <long?>("NullableLongValue").ShouldBe(_testClass.NullableLongValue);
            result.Get <byte>("ByteValue").ShouldBe(_testClass.ByteValue);
            result.Get <byte?>("NullableByteValue").ShouldBe(_testClass.NullableByteValue);
            result.Get <TestEnum>("EnumValue").ShouldBe(_testClass.EnumValue);
            result.Get <TestEnum?>("NullableEnumValue").ShouldBe(_testClass.NullableEnumValue);
            result.Get <DateTimeOffset>("DateTimeOffsetValue").ShouldBe(_testClass.DateTimeOffsetValue);
            result.Get <DateTimeOffset?>("NullableDateTimeOffsetValue").ShouldBe(_testClass.NullableDateTimeOffsetValue);
            result.Get <DateTime>("DateTimeValue").ShouldBe(_testClass.DateTimeValue);
            result.Get <DateTime?>("NullableDateTimeValue").ShouldBe(_testClass.NullableDateTimeValue);
            result.Get <string>("NewName").ShouldBe(_testClass.OldName);
            result.Get <NotEligible>("NotEligibleButIncludeAnywayValue").ShouldBe(_testClass.NotEligibleButIncludeAnywayValue);

            // Since the TableValueParamter type is internal to Dapper, we can't use Get<T>
            // to inspect the value. We'll have to be satisfied for checking for it's existence.
            result.ParameterNames.Where(x => x == "DataTableValue").Any().ShouldBeTrue();
            result.ParameterNames.Where(x => x == "EnumerableDataRecords").Any().ShouldBeTrue();

            // Anything marked as ParakeetIgnore, even if it's eligible, should be ignored.
            result.ParameterNames.Where(x => x == "Ignored").Any().ShouldBeFalse();

            // Anything not eligble should be ignored unless it has the Parakeet attribute
            result.ParameterNames.Where(x => x == "NotEligible").Any().ShouldBeFalse();
        }
Пример #2
0
 private void Project_ProjectLoaded(Parakeet.Plugin.Project project)
 {
     if (project == null)
         // Do nothing
         return;
     _project = project;
 }