Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/idl_gen_csharp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,10 @@ class CSharpGenerator : public BaseGenerator {
if (opts.generate_object_based_api) {
GenEnum_ObjectAPI(enum_def, code_ptr, opts);
}

if (enum_def.is_union) {
code += GenUnionVerify(enum_def.underlying_type);
}
}

bool HasUnionStringValue(const EnumDef &enum_def) const {
Expand Down Expand Up @@ -1755,8 +1759,6 @@ class CSharpGenerator : public BaseGenerator {
code += " }\n";
code += "}\n\n";

code += GenUnionVerify(enum_def.underlying_type);

// JsonConverter
if (opts.cs_gen_json_serializer) {
if (enum_def.attributes.Lookup("private")) {
Expand Down
20 changes: 20 additions & 0 deletions tests/FlatBuffers.Test/Assert.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,26 @@ public static void ArrayEqual<T>(T[] expected, T[] actual)
}
}

public static void ArrayEqual<T>(ArraySegment<T> expected, T[] actual)
{
#if NETCOREAPP
ArrayEqual(expected.ToArray(), actual);
#else
if (expected.Count != actual.Length)
{
throw new AssertFailedException(expected, actual);
}

for (var i = 0; i < expected.Count; ++i)
{
if (!expected.Array[expected.Offset + i].Equals(actual[i]))
{
throw new AssertArrayFailedException(i, expected, actual);
}
}
#endif
}

public static void IsTrue(bool value)
{
if (!value)
Expand Down
4 changes: 2 additions & 2 deletions tests/FlatBuffers.Test/ByteBufferTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ public void ByteBuffer_Put_ArraySegment_Helper<T>(ArraySegment<T> data, int type

// Get the full array back out and ensure they are equivalent
var bbArray = uut.ToArray<T>(nOffset, data.Count);
Assert.ArrayEqual(data.ToArray(), bbArray);
Assert.ArrayEqual(data, bbArray);
}

public unsafe void ByteBuffer_Put_IntPtr_Helper<T>(T[] data, int typeSize)
Expand Down Expand Up @@ -643,7 +643,7 @@ public void ByteBuffer_Put_Array_Null_Throws()
float[] data = null;
Assert.Throws<ArgumentNullException>(() => uut.Put(1024, data));

ArraySegment<float> dataArraySegment = default;
ArraySegment<float> dataArraySegment = default(ArraySegment<float>);
Assert.Throws<ArgumentNullException>(() => uut.Put(1024, dataArraySegment));

IntPtr dataPtr = IntPtr.Zero;
Expand Down
7 changes: 5 additions & 2 deletions tests/FlatBuffers.Test/FlatBufferBuilderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/

using System;
using System.Diagnostics;

namespace Google.FlatBuffers.Test
{
Expand Down Expand Up @@ -586,12 +587,14 @@ public void FlatBufferBuilder_Add_Array_Empty_Noop()
[FlatBuffersTestMethod]
public void FlatBufferBuilder_Add_ArraySegment_Default_Throws()
{
var fbb = CreateBuffer(false);
#if NETCOREAPP
var fbb = CreateBuffer(false);

// Construct the data array
ArraySegment<float> data = default;
ArraySegment<float> data = default(ArraySegment<float>);

Assert.Throws<ArgumentNullException>(() => fbb.Add(data));
#endif
}

[FlatBuffersTestMethod]
Expand Down
8 changes: 7 additions & 1 deletion tests/FlatBuffers.Test/FlatBuffers.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@
<Compile Include="..\..\net\FlatBuffers\FlatBufferConstants.cs">
<Link>FlatBuffers\FlatBufferConstants.cs</Link>
</Compile>
<Compile Include="..\..\net\FlatBuffers\FlatBufferVerify.cs">
<Link>FlatBuffers\FlatBufferVerify.cs</Link>
</Compile>
<Compile Include="..\..\net\FlatBuffers\Struct.cs">
<Link>FlatBuffers\Struct.cs</Link>
</Compile>
Expand Down Expand Up @@ -120,6 +123,9 @@
<Compile Include="..\MyGame\Example\ArrayStruct.cs">
<Link>MyGame\Example\ArrayStruct.cs</Link>
</Compile>
<Compile Include="..\MyGame\Example\LongEnum.cs">
<Link>MyGame\Example\LongEnum.cs</Link>
</Compile>
<Compile Include="..\MyGame\Example\NestedStruct.cs">
<Link>MyGame\Example\NestedStruct.cs</Link>
</Compile>
Expand Down Expand Up @@ -220,4 +226,4 @@
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>
44 changes: 22 additions & 22 deletions tests/KeywordTest/KeywordsInUnion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,28 +37,6 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, KeywordsInU
}
}



static public class KeywordsInUnionVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((KeywordsInUnion)typeId)
{
case KeywordsInUnion.@static:
result = KeywordTest.KeywordsInTableVerify.Verify(verifier, tablePos);
break;
case KeywordsInUnion.@internal:
result = KeywordTest.KeywordsInTableVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}

public class KeywordsInUnionUnion_JsonConverter : Newtonsoft.Json.JsonConverter {
public override bool CanConvert(System.Type objectType) {
return objectType == typeof(KeywordsInUnionUnion) || objectType == typeof(System.Collections.Generic.List<KeywordsInUnionUnion>);
Expand Down Expand Up @@ -102,4 +80,26 @@ public KeywordsInUnionUnion ReadJson(Newtonsoft.Json.JsonReader reader, Keywords
}



static public class KeywordsInUnionVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((KeywordsInUnion)typeId)
{
case KeywordsInUnion.@static:
result = KeywordTest.KeywordsInTableVerify.Verify(verifier, tablePos);
break;
case KeywordsInUnion.@internal:
result = KeywordTest.KeywordsInTableVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}


}
50 changes: 25 additions & 25 deletions tests/MyGame/Example/Any.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,6 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, AnyUnion _o
}
}



static public class AnyVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((Any)typeId)
{
case Any.Monster:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case Any.TestSimpleTableWithEnum:
result = MyGame.Example.TestSimpleTableWithEnumVerify.Verify(verifier, tablePos);
break;
case Any.MyGame_Example2_Monster:
result = MyGame.Example2.MonsterVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}

public class AnyUnion_JsonConverter : Newtonsoft.Json.JsonConverter {
public override bool CanConvert(System.Type objectType) {
return objectType == typeof(AnyUnion) || objectType == typeof(System.Collections.Generic.List<AnyUnion>);
Expand Down Expand Up @@ -110,4 +85,29 @@ public AnyUnion ReadJson(Newtonsoft.Json.JsonReader reader, AnyUnion _o, Newtons
}



static public class AnyVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((Any)typeId)
{
case Any.Monster:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case Any.TestSimpleTableWithEnum:
result = MyGame.Example.TestSimpleTableWithEnumVerify.Verify(verifier, tablePos);
break;
case Any.MyGame_Example2_Monster:
result = MyGame.Example2.MonsterVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}


}
50 changes: 25 additions & 25 deletions tests/MyGame/Example/AnyAmbiguousAliases.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,6 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, AnyAmbiguou
}
}



static public class AnyAmbiguousAliasesVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((AnyAmbiguousAliases)typeId)
{
case AnyAmbiguousAliases.M1:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case AnyAmbiguousAliases.M2:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case AnyAmbiguousAliases.M3:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}

public class AnyAmbiguousAliasesUnion_JsonConverter : Newtonsoft.Json.JsonConverter {
public override bool CanConvert(System.Type objectType) {
return objectType == typeof(AnyAmbiguousAliasesUnion) || objectType == typeof(System.Collections.Generic.List<AnyAmbiguousAliasesUnion>);
Expand Down Expand Up @@ -110,4 +85,29 @@ public AnyAmbiguousAliasesUnion ReadJson(Newtonsoft.Json.JsonReader reader, AnyA
}



static public class AnyAmbiguousAliasesVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((AnyAmbiguousAliases)typeId)
{
case AnyAmbiguousAliases.M1:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case AnyAmbiguousAliases.M2:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case AnyAmbiguousAliases.M3:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}


}
50 changes: 25 additions & 25 deletions tests/MyGame/Example/AnyUniqueAliases.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,6 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, AnyUniqueAl
}
}



static public class AnyUniqueAliasesVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((AnyUniqueAliases)typeId)
{
case AnyUniqueAliases.M:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case AnyUniqueAliases.TS:
result = MyGame.Example.TestSimpleTableWithEnumVerify.Verify(verifier, tablePos);
break;
case AnyUniqueAliases.M2:
result = MyGame.Example2.MonsterVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}

public class AnyUniqueAliasesUnion_JsonConverter : Newtonsoft.Json.JsonConverter {
public override bool CanConvert(System.Type objectType) {
return objectType == typeof(AnyUniqueAliasesUnion) || objectType == typeof(System.Collections.Generic.List<AnyUniqueAliasesUnion>);
Expand Down Expand Up @@ -110,4 +85,29 @@ public AnyUniqueAliasesUnion ReadJson(Newtonsoft.Json.JsonReader reader, AnyUniq
}



static public class AnyUniqueAliasesVerify
{
static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos)
{
bool result = true;
switch((AnyUniqueAliases)typeId)
{
case AnyUniqueAliases.M:
result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos);
break;
case AnyUniqueAliases.TS:
result = MyGame.Example.TestSimpleTableWithEnumVerify.Verify(verifier, tablePos);
break;
case AnyUniqueAliases.M2:
result = MyGame.Example2.MonsterVerify.Verify(verifier, tablePos);
break;
default: result = true;
break;
}
return result;
}
}


}
Loading