Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
b5a7ed24
Commit
b5a7ed24
authored
Oct 01, 2011
by
csharptest
Committed by
rogerk
Oct 01, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Conditional extensions in serialization, Removed usages of extensions methods from unit tests
parent
4ad55269
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
124 additions
and
248 deletions
+124
-248
Extensions.cs
src/ProtocolBuffers.Serialization/Extensions.cs
+61
-13
ProtocolBuffers.Serialization.csproj
...uffers.Serialization/ProtocolBuffers.Serialization.csproj
+6
-10
ProtocolBuffersLite.Serialization.csproj
...rs.Serialization/ProtocolBuffersLite.Serialization.csproj
+6
-10
ReusableBuilderTest.cs
src/ProtocolBuffers.Test/ReusableBuilderTest.cs
+2
-2
TestMimeMessageFormats.cs
src/ProtocolBuffers.Test/TestMimeMessageFormats.cs
+21
-21
TestRpcForMimeTypes.cs
src/ProtocolBuffers.Test/TestRpcForMimeTypes.cs
+4
-4
TestWriterFormatJson.cs
src/ProtocolBuffers.Test/TestWriterFormatJson.cs
+9
-7
TestWriterFormatXml.cs
src/ProtocolBuffers.Test/TestWriterFormatXml.cs
+9
-7
ProtocolBuffersLite.Test.csproj
src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
+6
-2
TestRpcForMimeTypes.cs
src/ProtocolBuffersLite.Test/TestRpcForMimeTypes.cs
+0
-0
TestRpcGenerator.cs
src/ProtocolBuffersLite.Test/TestRpcGenerator.cs
+0
-172
No files found.
src/ProtocolBuffers.Serialization/Extensions.cs
View file @
b5a7ed24
...
@@ -17,7 +17,11 @@ namespace Google.ProtocolBuffers
...
@@ -17,7 +17,11 @@ namespace Google.ProtocolBuffers
/// Serializes the message to JSON text. This is a trivial wrapper
/// Serializes the message to JSON text. This is a trivial wrapper
/// around Serialization.JsonFormatWriter.WriteMessage.
/// around Serialization.JsonFormatWriter.WriteMessage.
/// </summary>
/// </summary>
public
static
string
ToJson
(
this
IMessageLite
message
)
public
static
string
ToJson
(
#if !NET20
this
#endif
IMessageLite
message
)
{
{
JsonFormatWriter
w
=
JsonFormatWriter
.
CreateInstance
();
JsonFormatWriter
w
=
JsonFormatWriter
.
CreateInstance
();
w
.
WriteMessage
(
message
);
w
.
WriteMessage
(
message
);
...
@@ -27,7 +31,11 @@ namespace Google.ProtocolBuffers
...
@@ -27,7 +31,11 @@ namespace Google.ProtocolBuffers
/// Serializes the message to XML text. This is a trivial wrapper
/// Serializes the message to XML text. This is a trivial wrapper
/// around Serialization.XmlFormatWriter.WriteMessage.
/// around Serialization.XmlFormatWriter.WriteMessage.
/// </summary>
/// </summary>
public
static
string
ToXml
(
this
IMessageLite
message
)
public
static
string
ToXml
(
#if !NET20
this
#endif
IMessageLite
message
)
{
{
StringWriter
w
=
new
StringWriter
(
new
StringBuilder
(
4096
));
StringWriter
w
=
new
StringWriter
(
new
StringBuilder
(
4096
));
XmlFormatWriter
.
CreateInstance
(
w
).
WriteMessage
(
message
);
XmlFormatWriter
.
CreateInstance
(
w
).
WriteMessage
(
message
);
...
@@ -37,7 +45,11 @@ namespace Google.ProtocolBuffers
...
@@ -37,7 +45,11 @@ namespace Google.ProtocolBuffers
/// Serializes the message to XML text using the element name provided.
/// Serializes the message to XML text using the element name provided.
/// This is a trivial wrapper around Serialization.XmlFormatWriter.WriteMessage.
/// This is a trivial wrapper around Serialization.XmlFormatWriter.WriteMessage.
/// </summary>
/// </summary>
public
static
string
ToXml
(
this
IMessageLite
message
,
string
rootElementName
)
public
static
string
ToXml
(
#if !NET20
this
#endif
IMessageLite
message
,
string
rootElementName
)
{
{
StringWriter
w
=
new
StringWriter
(
new
StringBuilder
(
4096
));
StringWriter
w
=
new
StringWriter
(
new
StringBuilder
(
4096
));
XmlFormatWriter
.
CreateInstance
(
w
).
WriteMessage
(
rootElementName
,
message
);
XmlFormatWriter
.
CreateInstance
(
w
).
WriteMessage
(
rootElementName
,
message
);
...
@@ -51,7 +63,11 @@ namespace Google.ProtocolBuffers
...
@@ -51,7 +63,11 @@ namespace Google.ProtocolBuffers
/// <param name="options">Options specific to writing this message and/or content type</param>
/// <param name="options">Options specific to writing this message and/or content type</param>
/// <param name="contentType">The mime type of the content to be written</param>
/// <param name="contentType">The mime type of the content to be written</param>
/// <param name="output">The stream to write the message to</param>
/// <param name="output">The stream to write the message to</param>
public
static
void
WriteTo
(
this
IMessageLite
message
,
MessageFormatOptions
options
,
string
contentType
,
Stream
output
)
public
static
void
WriteTo
(
#if !NET20
this
#endif
IMessageLite
message
,
MessageFormatOptions
options
,
string
contentType
,
Stream
output
)
{
{
ICodedOutputStream
codedOutput
=
MessageFormatFactory
.
CreateOutputStream
(
options
,
contentType
,
output
);
ICodedOutputStream
codedOutput
=
MessageFormatFactory
.
CreateOutputStream
(
options
,
contentType
,
output
);
...
@@ -71,7 +87,11 @@ namespace Google.ProtocolBuffers
...
@@ -71,7 +87,11 @@ namespace Google.ProtocolBuffers
/// <summary>
/// <summary>
/// Merges a JSON object into this builder and returns
/// Merges a JSON object into this builder and returns
/// </summary>
/// </summary>
public
static
TBuilder
MergeFromJson
<
TBuilder
>(
this
TBuilder
builder
,
string
jsonText
)
where
TBuilder
:
IBuilderLite
public
static
TBuilder
MergeFromJson
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
string
jsonText
)
where
TBuilder
:
IBuilderLite
{
{
return
JsonFormatReader
.
CreateInstance
(
jsonText
)
return
JsonFormatReader
.
CreateInstance
(
jsonText
)
.
Merge
(
builder
);
.
Merge
(
builder
);
...
@@ -79,14 +99,22 @@ namespace Google.ProtocolBuffers
...
@@ -79,14 +99,22 @@ namespace Google.ProtocolBuffers
/// <summary>
/// <summary>
/// Merges a JSON object into this builder and returns
/// Merges a JSON object into this builder and returns
/// </summary>
/// </summary>
public
static
TBuilder
MergeFromJson
<
TBuilder
>(
this
TBuilder
builder
,
TextReader
reader
)
where
TBuilder
:
IBuilderLite
public
static
TBuilder
MergeFromJson
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
TextReader
reader
)
where
TBuilder
:
IBuilderLite
{
{
return
MergeFromJson
(
builder
,
reader
,
ExtensionRegistry
.
Empty
);
return
MergeFromJson
(
builder
,
reader
,
ExtensionRegistry
.
Empty
);
}
}
/// <summary>
/// <summary>
/// Merges a JSON object into this builder using the extensions provided and returns
/// Merges a JSON object into this builder using the extensions provided and returns
/// </summary>
/// </summary>
public
static
TBuilder
MergeFromJson
<
TBuilder
>(
this
TBuilder
builder
,
TextReader
reader
,
ExtensionRegistry
extensionRegistry
)
where
TBuilder
:
IBuilderLite
public
static
TBuilder
MergeFromJson
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
TextReader
reader
,
ExtensionRegistry
extensionRegistry
)
where
TBuilder
:
IBuilderLite
{
{
return
JsonFormatReader
.
CreateInstance
(
reader
)
return
JsonFormatReader
.
CreateInstance
(
reader
)
.
Merge
(
builder
,
extensionRegistry
);
.
Merge
(
builder
,
extensionRegistry
);
...
@@ -95,7 +123,11 @@ namespace Google.ProtocolBuffers
...
@@ -95,7 +123,11 @@ namespace Google.ProtocolBuffers
/// <summary>
/// <summary>
/// Merges an XML object into this builder and returns
/// Merges an XML object into this builder and returns
/// </summary>
/// </summary>
public
static
TBuilder
MergeFromXml
<
TBuilder
>(
this
TBuilder
builder
,
XmlReader
reader
)
where
TBuilder
:
IBuilderLite
public
static
TBuilder
MergeFromXml
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
XmlReader
reader
)
where
TBuilder
:
IBuilderLite
{
{
return
MergeFromXml
(
builder
,
XmlFormatReader
.
DefaultRootElementName
,
reader
,
ExtensionRegistry
.
Empty
);
return
MergeFromXml
(
builder
,
XmlFormatReader
.
DefaultRootElementName
,
reader
,
ExtensionRegistry
.
Empty
);
}
}
...
@@ -103,7 +135,11 @@ namespace Google.ProtocolBuffers
...
@@ -103,7 +135,11 @@ namespace Google.ProtocolBuffers
/// <summary>
/// <summary>
/// Merges an XML object into this builder and returns
/// Merges an XML object into this builder and returns
/// </summary>
/// </summary>
public
static
TBuilder
MergeFromXml
<
TBuilder
>(
this
TBuilder
builder
,
string
rootElementName
,
XmlReader
reader
)
where
TBuilder
:
IBuilderLite
public
static
TBuilder
MergeFromXml
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
string
rootElementName
,
XmlReader
reader
)
where
TBuilder
:
IBuilderLite
{
{
return
MergeFromXml
(
builder
,
rootElementName
,
reader
,
ExtensionRegistry
.
Empty
);
return
MergeFromXml
(
builder
,
rootElementName
,
reader
,
ExtensionRegistry
.
Empty
);
}
}
...
@@ -111,7 +147,11 @@ namespace Google.ProtocolBuffers
...
@@ -111,7 +147,11 @@ namespace Google.ProtocolBuffers
/// <summary>
/// <summary>
/// Merges an XML object into this builder using the extensions provided and returns
/// Merges an XML object into this builder using the extensions provided and returns
/// </summary>
/// </summary>
public
static
TBuilder
MergeFromXml
<
TBuilder
>(
this
TBuilder
builder
,
string
rootElementName
,
XmlReader
reader
,
public
static
TBuilder
MergeFromXml
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
string
rootElementName
,
XmlReader
reader
,
ExtensionRegistry
extensionRegistry
)
where
TBuilder
:
IBuilderLite
ExtensionRegistry
extensionRegistry
)
where
TBuilder
:
IBuilderLite
{
{
return
XmlFormatReader
.
CreateInstance
(
reader
)
return
XmlFormatReader
.
CreateInstance
(
reader
)
...
@@ -127,7 +167,11 @@ namespace Google.ProtocolBuffers
...
@@ -127,7 +167,11 @@ namespace Google.ProtocolBuffers
/// <param name="contentType">The mime type of the input stream content</param>
/// <param name="contentType">The mime type of the input stream content</param>
/// <param name="input">The stream to read the message from</param>
/// <param name="input">The stream to read the message from</param>
/// <returns>The same builder instance that was supplied in the builder parameter</returns>
/// <returns>The same builder instance that was supplied in the builder parameter</returns>
public
static
TBuilder
MergeFrom
<
TBuilder
>(
this
TBuilder
builder
,
MessageFormatOptions
options
,
string
contentType
,
Stream
input
)
where
TBuilder
:
IBuilderLite
public
static
TBuilder
MergeFrom
<
TBuilder
>(
#if !NET20
this
#endif
TBuilder
builder
,
MessageFormatOptions
options
,
string
contentType
,
Stream
input
)
where
TBuilder
:
IBuilderLite
{
{
ICodedInputStream
codedInput
=
MessageFormatFactory
.
CreateInputStream
(
options
,
contentType
,
input
);
ICodedInputStream
codedInput
=
MessageFormatFactory
.
CreateInputStream
(
options
,
contentType
,
input
);
codedInput
.
ReadMessageStart
();
codedInput
.
ReadMessageStart
();
...
@@ -150,14 +194,18 @@ namespace Google.ProtocolBuffers
...
@@ -150,14 +194,18 @@ namespace Google.ProtocolBuffers
/// <param name="input">The input stream</param>
/// <param name="input">The input stream</param>
/// <param name="responseType">The mime type for the output stream</param>
/// <param name="responseType">The mime type for the output stream</param>
/// <param name="output">The output stream</param>
/// <param name="output">The output stream</param>
public
static
void
HttpCallMethod
(
this
IRpcServerStub
stub
,
string
methodName
,
MessageFormatOptions
options
,
public
static
void
HttpCallMethod
(
#if !NET20
this
#endif
IRpcServerStub
stub
,
string
methodName
,
MessageFormatOptions
options
,
string
contentType
,
Stream
input
,
string
responseType
,
Stream
output
)
string
contentType
,
Stream
input
,
string
responseType
,
Stream
output
)
{
{
ICodedInputStream
codedInput
=
MessageFormatFactory
.
CreateInputStream
(
options
,
contentType
,
input
);
ICodedInputStream
codedInput
=
MessageFormatFactory
.
CreateInputStream
(
options
,
contentType
,
input
);
codedInput
.
ReadMessageStart
();
codedInput
.
ReadMessageStart
();
IMessageLite
response
=
stub
.
CallMethod
(
methodName
,
codedInput
,
options
.
ExtensionRegistry
);
IMessageLite
response
=
stub
.
CallMethod
(
methodName
,
codedInput
,
options
.
ExtensionRegistry
);
codedInput
.
ReadMessageEnd
();
codedInput
.
ReadMessageEnd
();
response
.
WriteTo
(
options
,
responseType
,
output
);
WriteTo
(
response
,
options
,
responseType
,
output
);
}
}
#
endregion
#
endregion
...
...
src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
View file @
b5a7ed24
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
<IsWebBootstrapper>
false
</IsWebBootstrapper>
<IsWebBootstrapper>
false
</IsWebBootstrapper>
<UseApplicationTrust>
false
</UseApplicationTrust>
<UseApplicationTrust>
false
</UseApplicationTrust>
<BootstrapperEnabled>
true
</BootstrapperEnabled>
<BootstrapperEnabled>
true
</BootstrapperEnabled>
<DefineConstants>
TRACE;NET20;
</DefineConstants>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<DebugSymbols>
true
</DebugSymbols>
<DebugSymbols>
true
</DebugSymbols>
...
@@ -42,7 +43,7 @@
...
@@ -42,7 +43,7 @@
<OutputPath>
bin\Debug\
</OutputPath>
<OutputPath>
bin\Debug\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
DEBUG;TRACE
</DefineConstants>
<DefineConstants>
$(DefineConstants)DEBUG;
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -54,7 +55,7 @@
...
@@ -54,7 +55,7 @@
<OutputPath>
bin\Release\
</OutputPath>
<OutputPath>
bin\Release\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
TRACE
</DefineConstants>
<DefineConstants>
$(DefineConstants)
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -67,7 +68,7 @@
...
@@ -67,7 +68,7 @@
<OutputPath>
bin\Debug_Silverlight2\
</OutputPath>
<OutputPath>
bin\Debug_Silverlight2\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
DEBUG;TRACE
;SILVERLIGHT2
</DefineConstants>
<DefineConstants>
$(DefineConstants)DEBUG
;SILVERLIGHT2
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -79,7 +80,7 @@
...
@@ -79,7 +80,7 @@
<OutputPath>
bin\Release_Silverlight2\
</OutputPath>
<OutputPath>
bin\Release_Silverlight2\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
TRACE;
SILVERLIGHT2
</DefineConstants>
<DefineConstants>
$(DefineConstants)
SILVERLIGHT2
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -89,12 +90,7 @@
...
@@ -89,12 +90,7 @@
<Reference
Include=
"mscorlib"
/>
<Reference
Include=
"mscorlib"
/>
<Reference
Include=
"System"
/>
<Reference
Include=
"System"
/>
<Reference
Include=
"System.Xml"
/>
<Reference
Include=
"System.Xml"
/>
<!-- Only for 2.x compatibility of extension methods -->
<Reference
Include=
"System.Core"
Condition=
"'$(TargetFrameworkVersion)' != 'v2.0'"
/>
<Reference
Include=
"System.Core"
>
<SpecificVersion>
False
</SpecificVersion>
<HintPath>
..\..\lib\System.Core\System.Core.dll
</HintPath>
<Private>
False
</Private>
</Reference>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<Compile
Include=
"Extensions.cs"
/>
<Compile
Include=
"Extensions.cs"
/>
...
...
src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
View file @
b5a7ed24
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
<IsWebBootstrapper>
false
</IsWebBootstrapper>
<IsWebBootstrapper>
false
</IsWebBootstrapper>
<UseApplicationTrust>
false
</UseApplicationTrust>
<UseApplicationTrust>
false
</UseApplicationTrust>
<BootstrapperEnabled>
true
</BootstrapperEnabled>
<BootstrapperEnabled>
true
</BootstrapperEnabled>
<DefineConstants>
TRACE;NET20;
</DefineConstants>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<DebugSymbols>
true
</DebugSymbols>
<DebugSymbols>
true
</DebugSymbols>
...
@@ -42,7 +43,7 @@
...
@@ -42,7 +43,7 @@
<OutputPath>
bin\Debug\
</OutputPath>
<OutputPath>
bin\Debug\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
DEBUG;TRACE
</DefineConstants>
<DefineConstants>
$(DefineConstants)DEBUG
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -54,7 +55,7 @@
...
@@ -54,7 +55,7 @@
<OutputPath>
bin\Release\
</OutputPath>
<OutputPath>
bin\Release\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
TRACE
</DefineConstants>
<DefineConstants>
$(DefineConstants)
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -67,7 +68,7 @@
...
@@ -67,7 +68,7 @@
<OutputPath>
bin\Debug_Silverlight2\
</OutputPath>
<OutputPath>
bin\Debug_Silverlight2\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
DEBUG;TRACE
;SILVERLIGHT2
</DefineConstants>
<DefineConstants>
$(DefineConstants)DEBUG
;SILVERLIGHT2
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -79,7 +80,7 @@
...
@@ -79,7 +80,7 @@
<OutputPath>
bin\Release_Silverlight2\
</OutputPath>
<OutputPath>
bin\Release_Silverlight2\
</OutputPath>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<DocumentationFile>
$(OutputPath)\$(AssemblyName).xml
</DocumentationFile>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<NoWarn>
1591, 1570, 1571, 1572, 1573, 1574
</NoWarn>
<DefineConstants>
TRACE;
SILVERLIGHT2
</DefineConstants>
<DefineConstants>
$(DefineConstants)
SILVERLIGHT2
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<NoStdLib>
true
</NoStdLib>
<NoStdLib>
true
</NoStdLib>
...
@@ -89,12 +90,7 @@
...
@@ -89,12 +90,7 @@
<Reference
Include=
"mscorlib"
/>
<Reference
Include=
"mscorlib"
/>
<Reference
Include=
"System"
/>
<Reference
Include=
"System"
/>
<Reference
Include=
"System.Xml"
/>
<Reference
Include=
"System.Xml"
/>
<!-- Only for 2.x compatibility of extension methods -->
<Reference
Include=
"System.Core"
Condition=
"'$(TargetFrameworkVersion)' != 'v2.0'"
/>
<Reference
Include=
"System.Core"
>
<SpecificVersion>
False
</SpecificVersion>
<HintPath>
..\..\lib\System.Core\System.Core.dll
</HintPath>
<Private>
False
</Private>
</Reference>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<Compile
Include=
"Extensions.cs"
/>
<Compile
Include=
"Extensions.cs"
/>
...
...
src/ProtocolBuffers.Test/ReusableBuilderTest.cs
View file @
b5a7ed24
...
@@ -90,8 +90,8 @@ namespace Google.ProtocolBuffers
...
@@ -90,8 +90,8 @@ namespace Google.ProtocolBuffers
TestAllTypes
m2
=
b1
.
Build
();
TestAllTypes
m2
=
b1
.
Build
();
Assert
.
AreEqual
(
"{\"optional_foreign_message\":{},\"repeated_int32\":[2],\"default_int32\":1}"
,
m1
.
ToJson
(
));
Assert
.
AreEqual
(
"{\"optional_foreign_message\":{},\"repeated_int32\":[2],\"default_int32\":1}"
,
Extensions
.
ToJson
(
m1
));
Assert
.
AreEqual
(
"{\"optional_foreign_message\":{\"c\":7},\"repeated_int32\":[2,6],\"default_int32\":5}"
,
m2
.
ToJson
(
));
Assert
.
AreEqual
(
"{\"optional_foreign_message\":{\"c\":7},\"repeated_int32\":[2,6],\"default_int32\":5}"
,
Extensions
.
ToJson
(
m2
));
}
}
[
Test
]
[
Test
]
...
...
src/ProtocolBuffers.Test/TestMimeMessageFormats.cs
View file @
b5a7ed24
...
@@ -98,9 +98,9 @@ namespace Google.ProtocolBuffers
...
@@ -98,9 +98,9 @@ namespace Google.ProtocolBuffers
[
Test
]
[
Test
]
public
void
TestMergeFromJsonType
()
public
void
TestMergeFromJsonType
()
{
{
TestXmlMessage
msg
=
new
TestXmlMessage
.
Builder
().
MergeFrom
(
TestXmlMessage
msg
=
Extensions
.
MergeFrom
(
new
TestXmlMessage
.
Builder
(),
new
MessageFormatOptions
(),
"application/json"
,
new
MemoryStream
(
Encoding
.
ASCII
.
GetBytes
(
new
MessageFormatOptions
(),
"application/json"
,
new
MemoryStream
(
Encoding
.
ASCII
.
GetBytes
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToJson
(
)
Extensions
.
ToJson
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
)
)))
)))
.
Build
();
.
Build
();
Assert
.
AreEqual
(
"a"
,
msg
.
Text
);
Assert
.
AreEqual
(
"a"
,
msg
.
Text
);
...
@@ -109,9 +109,9 @@ namespace Google.ProtocolBuffers
...
@@ -109,9 +109,9 @@ namespace Google.ProtocolBuffers
[
Test
]
[
Test
]
public
void
TestMergeFromXmlType
()
public
void
TestMergeFromXmlType
()
{
{
TestXmlMessage
msg
=
new
TestXmlMessage
.
Builder
().
MergeFrom
(
TestXmlMessage
msg
=
Extensions
.
MergeFrom
(
new
TestXmlMessage
.
Builder
(),
new
MessageFormatOptions
(),
"application/xml"
,
new
MemoryStream
(
Encoding
.
ASCII
.
GetBytes
(
new
MessageFormatOptions
(),
"application/xml"
,
new
MemoryStream
(
Encoding
.
ASCII
.
GetBytes
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToXml
(
)
Extensions
.
ToXml
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
)
)))
)))
.
Build
();
.
Build
();
Assert
.
AreEqual
(
"a"
,
msg
.
Text
);
Assert
.
AreEqual
(
"a"
,
msg
.
Text
);
...
@@ -120,7 +120,7 @@ namespace Google.ProtocolBuffers
...
@@ -120,7 +120,7 @@ namespace Google.ProtocolBuffers
[
Test
]
[
Test
]
public
void
TestMergeFromProtoType
()
public
void
TestMergeFromProtoType
()
{
{
TestXmlMessage
msg
=
new
TestXmlMessage
.
Builder
().
MergeFrom
(
TestXmlMessage
msg
=
Extensions
.
MergeFrom
(
new
TestXmlMessage
.
Builder
(),
new
MessageFormatOptions
(),
"application/vnd.google.protobuf"
,
new
MemoryStream
(
new
MessageFormatOptions
(),
"application/vnd.google.protobuf"
,
new
MemoryStream
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToByteArray
()
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToByteArray
()
))
))
...
@@ -132,8 +132,8 @@ namespace Google.ProtocolBuffers
...
@@ -132,8 +132,8 @@ namespace Google.ProtocolBuffers
public
void
TestWriteToJsonType
()
public
void
TestWriteToJsonType
()
{
{
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
Extensions
.
WriteTo
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
(),
.
WriteTo
(
new
MessageFormatOptions
(),
"application/json"
,
ms
);
new
MessageFormatOptions
(),
"application/json"
,
ms
);
Assert
.
AreEqual
(
@"{""text"":""a"",""number"":1}"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
Assert
.
AreEqual
(
@"{""text"":""a"",""number"":1}"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
}
}
...
@@ -141,8 +141,8 @@ namespace Google.ProtocolBuffers
...
@@ -141,8 +141,8 @@ namespace Google.ProtocolBuffers
public
void
TestWriteToXmlType
()
public
void
TestWriteToXmlType
()
{
{
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
Extensions
.
WriteTo
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
(),
.
WriteTo
(
new
MessageFormatOptions
(),
"application/xml"
,
ms
);
new
MessageFormatOptions
(),
"application/xml"
,
ms
);
Assert
.
AreEqual
(
"<root><text>a</text><number>1</number></root>"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
Assert
.
AreEqual
(
"<root><text>a</text><number>1</number></root>"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
}
}
...
@@ -150,8 +150,8 @@ namespace Google.ProtocolBuffers
...
@@ -150,8 +150,8 @@ namespace Google.ProtocolBuffers
public
void
TestWriteToProtoType
()
public
void
TestWriteToProtoType
()
{
{
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
Extensions
.
WriteTo
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
(),
.
WriteTo
(
new
MessageFormatOptions
(),
"application/vnd.google.protobuf"
,
ms
);
new
MessageFormatOptions
(),
"application/vnd.google.protobuf"
,
ms
);
byte
[]
bytes
=
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToByteArray
();
byte
[]
bytes
=
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToByteArray
();
Assert
.
AreEqual
(
bytes
,
ms
.
ToArray
());
Assert
.
AreEqual
(
bytes
,
ms
.
ToArray
());
...
@@ -171,7 +171,7 @@ namespace Google.ProtocolBuffers
...
@@ -171,7 +171,7 @@ namespace Google.ProtocolBuffers
XmlReaderRootElementName
=
"my-root-node"
XmlReaderRootElementName
=
"my-root-node"
};
};
TestXmlMessage
msg
=
new
TestXmlMessage
.
Builder
().
MergeFrom
(
TestXmlMessage
msg
=
Extensions
.
MergeFrom
(
new
TestXmlMessage
.
Builder
(),
options
,
"application/xml"
,
ms
)
options
,
"application/xml"
,
ms
)
.
Build
();
.
Build
();
...
@@ -191,7 +191,7 @@ namespace Google.ProtocolBuffers
...
@@ -191,7 +191,7 @@ namespace Google.ProtocolBuffers
};
};
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
message
.
WriteTo
(
options
,
"application/xml"
,
ms
);
Extensions
.
WriteTo
(
message
,
options
,
"application/xml"
,
ms
);
ms
.
Position
=
0
;
ms
.
Position
=
0
;
TestXmlMessage
.
Builder
builder
=
TestXmlMessage
.
CreateBuilder
();
TestXmlMessage
.
Builder
builder
=
TestXmlMessage
.
CreateBuilder
();
...
@@ -207,8 +207,8 @@ namespace Google.ProtocolBuffers
...
@@ -207,8 +207,8 @@ namespace Google.ProtocolBuffers
public
void
TestJsonFormatted
()
public
void
TestJsonFormatted
()
{
{
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
Extensions
.
WriteTo
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
(),
.
WriteTo
(
new
MessageFormatOptions
()
{
FormattedOutput
=
true
},
"application/json"
,
ms
);
new
MessageFormatOptions
()
{
FormattedOutput
=
true
},
"application/json"
,
ms
);
Assert
.
AreEqual
(
"{\r\n \"text\": \"a\",\r\n \"number\": 1\r\n}"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
Assert
.
AreEqual
(
"{\r\n \"text\": \"a\",\r\n \"number\": 1\r\n}"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
}
}
...
@@ -216,8 +216,8 @@ namespace Google.ProtocolBuffers
...
@@ -216,8 +216,8 @@ namespace Google.ProtocolBuffers
public
void
TestXmlFormatted
()
public
void
TestXmlFormatted
()
{
{
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
Extensions
.
WriteTo
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
(),
.
WriteTo
(
new
MessageFormatOptions
()
{
FormattedOutput
=
true
},
"application/xml"
,
ms
);
new
MessageFormatOptions
()
{
FormattedOutput
=
true
},
"application/xml"
,
ms
);
Assert
.
AreEqual
(
"<root>\r\n <text>a</text>\r\n <number>1</number>\r\n</root>"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
Assert
.
AreEqual
(
"<root>\r\n <text>a</text>\r\n <number>1</number>\r\n</root>"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
}
}
...
@@ -233,10 +233,10 @@ namespace Google.ProtocolBuffers
...
@@ -233,10 +233,10 @@ namespace Google.ProtocolBuffers
Assert
.
AreEqual
(
1
,
options
.
MimeInputTypes
.
Count
);
Assert
.
AreEqual
(
1
,
options
.
MimeInputTypes
.
Count
);
Stream
xmlStream
=
new
MemoryStream
(
Encoding
.
ASCII
.
GetBytes
(
Stream
xmlStream
=
new
MemoryStream
(
Encoding
.
ASCII
.
GetBytes
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
().
ToXml
(
)
Extensions
.
ToXml
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
)
));
));
TestXmlMessage
msg
=
new
TestXmlMessage
.
Builder
().
MergeFrom
(
TestXmlMessage
msg
=
Extensions
.
MergeFrom
(
new
TestXmlMessage
.
Builder
(),
options
,
"-custom-XML-mime-type-"
,
xmlStream
)
options
,
"-custom-XML-mime-type-"
,
xmlStream
)
.
Build
();
.
Build
();
Assert
.
AreEqual
(
"a"
,
msg
.
Text
);
Assert
.
AreEqual
(
"a"
,
msg
.
Text
);
...
@@ -255,8 +255,8 @@ namespace Google.ProtocolBuffers
...
@@ -255,8 +255,8 @@ namespace Google.ProtocolBuffers
Assert
.
AreEqual
(
1
,
options
.
MimeOutputTypes
.
Count
);
Assert
.
AreEqual
(
1
,
options
.
MimeOutputTypes
.
Count
);
MemoryStream
ms
=
new
MemoryStream
();
MemoryStream
ms
=
new
MemoryStream
();
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
()
Extensions
.
WriteTo
(
TestXmlMessage
.
CreateBuilder
().
SetText
(
"a"
).
SetNumber
(
1
).
Build
(),
.
WriteTo
(
options
,
"-custom-XML-mime-type-"
,
ms
);
options
,
"-custom-XML-mime-type-"
,
ms
);
Assert
.
AreEqual
(
"<root><text>a</text><number>1</number></root>"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
Assert
.
AreEqual
(
"<root><text>a</text><number>1</number></root>"
,
Encoding
.
UTF8
.
GetString
(
ms
.
ToArray
()));
}
}
...
...
src/ProtocolBuffers.Test/TestRpcForMimeTypes.cs
View file @
b5a7ed24
...
@@ -123,8 +123,8 @@ namespace Google.ProtocolBuffers
...
@@ -123,8 +123,8 @@ namespace Google.ProtocolBuffers
void
IHttpTransfer
.
Execute
(
string
method
,
string
contentType
,
Stream
input
,
string
acceptType
,
Stream
output
)
void
IHttpTransfer
.
Execute
(
string
method
,
string
contentType
,
Stream
input
,
string
acceptType
,
Stream
output
)
{
{
//
Extension for: Google.ProtocolBuffers.Serialization.Http.ServiceExtensions.HttpCallMethod(_stub,
//
3.5: _stub.HttpCallMethod(
_stub
.
HttpCallMethod
(
Extensions
.
HttpCallMethod
(
_stub
,
method
,
Options
,
method
,
Options
,
contentType
,
input
,
contentType
,
input
,
acceptType
,
output
acceptType
,
output
...
@@ -165,14 +165,14 @@ namespace Google.ProtocolBuffers
...
@@ -165,14 +165,14 @@ namespace Google.ProtocolBuffers
MemoryStream
output
=
new
MemoryStream
();
MemoryStream
output
=
new
MemoryStream
();
//Write to _mimeType format
//Write to _mimeType format
request
.
WriteTo
(
Options
,
_mimeType
,
input
);
Extensions
.
WriteTo
(
request
,
Options
,
_mimeType
,
input
);
input
.
Position
=
0
;
input
.
Position
=
0
;
_wire
.
Execute
(
method
,
_mimeType
,
input
,
_mimeType
,
output
);
_wire
.
Execute
(
method
,
_mimeType
,
input
,
_mimeType
,
output
);
//Read from _mimeType format
//Read from _mimeType format
output
.
Position
=
0
;
output
.
Position
=
0
;
response
.
MergeFrom
(
Options
,
_mimeType
,
output
);
Extensions
.
MergeFrom
(
response
,
Options
,
_mimeType
,
output
);
return
response
.
Build
();
return
response
.
Build
();
}
}
...
...
src/ProtocolBuffers.Test/TestWriterFormatJson.cs
View file @
b5a7ed24
...
@@ -15,7 +15,8 @@ namespace Google.ProtocolBuffers
...
@@ -15,7 +15,8 @@ namespace Google.ProtocolBuffers
{
{
TestXmlMessage
.
Builder
builder
=
TestXmlMessage
.
CreateBuilder
();
TestXmlMessage
.
Builder
builder
=
TestXmlMessage
.
CreateBuilder
();
builder
.
MergeFromJson
(
@"{""valid"":true}"
);
//3.5: builder.MergeFromJson(@"{""valid"":true}");
Extensions
.
MergeFromJson
(
builder
,
@"{""valid"":true}"
);
TestXmlMessage
message
=
builder
.
Build
();
TestXmlMessage
message
=
builder
.
Build
();
Assert
.
AreEqual
(
true
,
message
.
Valid
);
Assert
.
AreEqual
(
true
,
message
.
Valid
);
...
@@ -29,7 +30,8 @@ namespace Google.ProtocolBuffers
...
@@ -29,7 +30,8 @@ namespace Google.ProtocolBuffers
.
SetValid
(
true
)
.
SetValid
(
true
)
.
Build
();
.
Build
();
string
json
=
message
.
ToJson
();
//3.5: string json = message.ToJson();
string
json
=
Extensions
.
ToJson
(
message
);
Assert
.
AreEqual
(
@"{""valid"":true}"
,
json
);
Assert
.
AreEqual
(
@"{""valid"":true}"
,
json
);
}
}
...
@@ -100,9 +102,9 @@ namespace Google.ProtocolBuffers
...
@@ -100,9 +102,9 @@ namespace Google.ProtocolBuffers
public
void
TestToJsonParseFromJson
()
public
void
TestToJsonParseFromJson
()
{
{
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
string
json
=
msg
.
ToJson
(
);
string
json
=
Extensions
.
ToJson
(
msg
);
Assert
.
AreEqual
(
"{\"default_bool\":true}"
,
json
);
Assert
.
AreEqual
(
"{\"default_bool\":true}"
,
json
);
TestAllTypes
copy
=
new
TestAllTypes
.
Builder
().
MergeFromJson
(
json
).
Build
();
TestAllTypes
copy
=
Extensions
.
MergeFromJson
(
new
TestAllTypes
.
Builder
(),
json
).
Build
();
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
AreEqual
(
msg
,
copy
);
Assert
.
AreEqual
(
msg
,
copy
);
}
}
...
@@ -111,9 +113,9 @@ namespace Google.ProtocolBuffers
...
@@ -111,9 +113,9 @@ namespace Google.ProtocolBuffers
public
void
TestToJsonParseFromJsonReader
()
public
void
TestToJsonParseFromJsonReader
()
{
{
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
string
json
=
msg
.
ToJson
(
);
string
json
=
Extensions
.
ToJson
(
msg
);
Assert
.
AreEqual
(
"{\"default_bool\":true}"
,
json
);
Assert
.
AreEqual
(
"{\"default_bool\":true}"
,
json
);
TestAllTypes
copy
=
new
TestAllTypes
.
Builder
().
MergeFromJson
(
new
StringReader
(
json
)).
Build
();
TestAllTypes
copy
=
Extensions
.
MergeFromJson
(
new
TestAllTypes
.
Builder
(),
new
StringReader
(
json
)).
Build
();
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
AreEqual
(
msg
,
copy
);
Assert
.
AreEqual
(
msg
,
copy
);
}
}
...
@@ -429,7 +431,7 @@ namespace Google.ProtocolBuffers
...
@@ -429,7 +431,7 @@ namespace Google.ProtocolBuffers
StringBuilder
sb
=
new
StringBuilder
(
8192
);
StringBuilder
sb
=
new
StringBuilder
(
8192
);
for
(
int
i
=
0
;
i
<
80
;
i
++)
for
(
int
i
=
0
;
i
<
80
;
i
++)
sb
.
Append
(
"{\"child\":"
);
sb
.
Append
(
"{\"child\":"
);
TestXmlRescursive
msg
=
new
TestXmlRescursive
.
Builder
().
MergeFromJson
(
sb
.
ToString
()).
Build
();
TestXmlRescursive
msg
=
Extensions
.
MergeFromJson
(
new
TestXmlRescursive
.
Builder
(),
sb
.
ToString
()).
Build
();
}
}
[
Test
,
ExpectedException
(
typeof
(
FormatException
))]
[
Test
,
ExpectedException
(
typeof
(
FormatException
))]
public
void
FailWithEmptyText
()
public
void
FailWithEmptyText
()
...
...
src/ProtocolBuffers.Test/TestWriterFormatXml.cs
View file @
b5a7ed24
...
@@ -18,7 +18,8 @@ namespace Google.ProtocolBuffers
...
@@ -18,7 +18,8 @@ namespace Google.ProtocolBuffers
TestXmlMessage
.
Builder
builder
=
TestXmlMessage
.
CreateBuilder
();
TestXmlMessage
.
Builder
builder
=
TestXmlMessage
.
CreateBuilder
();
XmlReader
rdr
=
XmlReader
.
Create
(
new
StringReader
(
@"<root><valid>true</valid></root>"
));
XmlReader
rdr
=
XmlReader
.
Create
(
new
StringReader
(
@"<root><valid>true</valid></root>"
));
builder
.
MergeFromXml
(
rdr
);
//3.5: builder.MergeFromXml(rdr);
Extensions
.
MergeFromXml
(
builder
,
rdr
);
TestXmlMessage
message
=
builder
.
Build
();
TestXmlMessage
message
=
builder
.
Build
();
Assert
.
AreEqual
(
true
,
message
.
Valid
);
Assert
.
AreEqual
(
true
,
message
.
Valid
);
...
@@ -32,7 +33,8 @@ namespace Google.ProtocolBuffers
...
@@ -32,7 +33,8 @@ namespace Google.ProtocolBuffers
.
SetValid
(
true
)
.
SetValid
(
true
)
.
Build
();
.
Build
();
string
Xml
=
message
.
ToXml
();
//3.5: string Xml = message.ToXml();
string
Xml
=
Extensions
.
ToXml
(
message
);
Assert
.
AreEqual
(
@"<root><valid>true</valid></root>"
,
Xml
);
Assert
.
AreEqual
(
@"<root><valid>true</valid></root>"
,
Xml
);
}
}
...
@@ -75,9 +77,9 @@ namespace Google.ProtocolBuffers
...
@@ -75,9 +77,9 @@ namespace Google.ProtocolBuffers
public
void
TestToXmlParseFromXml
()
public
void
TestToXmlParseFromXml
()
{
{
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
string
xml
=
msg
.
ToXml
(
);
string
xml
=
Extensions
.
ToXml
(
msg
);
Assert
.
AreEqual
(
"<root><default_bool>true</default_bool></root>"
,
xml
);
Assert
.
AreEqual
(
"<root><default_bool>true</default_bool></root>"
,
xml
);
TestAllTypes
copy
=
new
TestAllTypes
.
Builder
().
MergeFromXml
(
XmlReader
.
Create
(
new
StringReader
(
xml
))).
Build
();
TestAllTypes
copy
=
Extensions
.
MergeFromXml
(
new
TestAllTypes
.
Builder
(),
XmlReader
.
Create
(
new
StringReader
(
xml
))).
Build
();
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
AreEqual
(
msg
,
copy
);
Assert
.
AreEqual
(
msg
,
copy
);
}
}
...
@@ -86,9 +88,9 @@ namespace Google.ProtocolBuffers
...
@@ -86,9 +88,9 @@ namespace Google.ProtocolBuffers
public
void
TestToXmlParseFromXmlWithRootName
()
public
void
TestToXmlParseFromXmlWithRootName
()
{
{
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
TestAllTypes
msg
=
new
TestAllTypes
.
Builder
().
SetDefaultBool
(
true
).
Build
();
string
xml
=
msg
.
ToXml
(
"message"
);
string
xml
=
Extensions
.
ToXml
(
msg
,
"message"
);
Assert
.
AreEqual
(
"<message><default_bool>true</default_bool></message>"
,
xml
);
Assert
.
AreEqual
(
"<message><default_bool>true</default_bool></message>"
,
xml
);
TestAllTypes
copy
=
new
TestAllTypes
.
Builder
().
MergeFromXml
(
"message"
,
XmlReader
.
Create
(
new
StringReader
(
xml
))).
Build
();
TestAllTypes
copy
=
Extensions
.
MergeFromXml
(
new
TestAllTypes
.
Builder
(),
"message"
,
XmlReader
.
Create
(
new
StringReader
(
xml
))).
Build
();
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
IsTrue
(
copy
.
HasDefaultBool
&&
copy
.
DefaultBool
);
Assert
.
AreEqual
(
msg
,
copy
);
Assert
.
AreEqual
(
msg
,
copy
);
}
}
...
@@ -447,7 +449,7 @@ namespace Google.ProtocolBuffers
...
@@ -447,7 +449,7 @@ namespace Google.ProtocolBuffers
StringBuilder
sb
=
new
StringBuilder
(
8192
);
StringBuilder
sb
=
new
StringBuilder
(
8192
);
for
(
int
i
=
0
;
i
<
80
;
i
++)
for
(
int
i
=
0
;
i
<
80
;
i
++)
sb
.
Append
(
"<child>"
);
sb
.
Append
(
"<child>"
);
TestXmlRescursive
msg
=
new
TestXmlRescursive
.
Builder
().
MergeFromXml
(
"child"
,
XmlReader
.
Create
(
new
StringReader
(
sb
.
ToString
()))).
Build
();
TestXmlRescursive
msg
=
Extensions
.
MergeFromXml
(
new
TestXmlRescursive
.
Builder
(),
"child"
,
XmlReader
.
Create
(
new
StringReader
(
sb
.
ToString
()))).
Build
();
}
}
}
}
}
}
src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
View file @
b5a7ed24
...
@@ -56,6 +56,12 @@
...
@@ -56,6 +56,12 @@
<Compile
Include=
"..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs"
>
<Compile
Include=
"..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs"
>
<Link>
Properties\AssemblyInfo.cs
</Link>
<Link>
Properties\AssemblyInfo.cs
</Link>
</Compile>
</Compile>
<Compile
Include=
"..\ProtocolBuffers.Test\TestRpcForMimeTypes.cs"
>
<Link>
TestRpcForMimeTypes.cs
</Link>
</Compile>
<Compile
Include=
"..\ProtocolBuffers.Test\TestRpcGenerator.cs"
>
<Link>
TestRpcGenerator.cs
</Link>
</Compile>
<Compile
Include=
"AbstractBuilderLiteTest.cs"
/>
<Compile
Include=
"AbstractBuilderLiteTest.cs"
/>
<Compile
Include=
"AbstractMessageLiteTest.cs"
/>
<Compile
Include=
"AbstractMessageLiteTest.cs"
/>
<Compile
Include=
"ExtendableBuilderLiteTest.cs"
/>
<Compile
Include=
"ExtendableBuilderLiteTest.cs"
/>
...
@@ -67,8 +73,6 @@
...
@@ -67,8 +73,6 @@
<Compile
Include=
"TestProtos\UnitTestImportLiteProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestImportLiteProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestLiteProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestLiteProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestRpcInteropLite.cs"
/>
<Compile
Include=
"TestProtos\UnitTestRpcInteropLite.cs"
/>
<Compile
Include=
"TestRpcForMimeTypes.cs"
/>
<Compile
Include=
"TestRpcGenerator.cs"
/>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj"
>
<ProjectReference
Include=
"..\ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj"
>
...
...
src/ProtocolBuffersLite.Test/TestRpcForMimeTypes.cs
deleted
100644 → 0
View file @
4ad55269
This diff is collapsed.
Click to expand it.
src/ProtocolBuffersLite.Test/TestRpcGenerator.cs
deleted
100644 → 0
View file @
4ad55269
#region Copyright notice and license
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://github.com/jskeet/dotnet-protobufs/
// Original C++/Java/Python code:
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endregion
using
System
;
using
Google.ProtocolBuffers
;
using
Google.ProtocolBuffers.TestProtos
;
using
NUnit.Framework
;
namespace
Google.ProtocolBuffers
{
/// <summary>
/// This class verifies the correct code is generated from unittest_rpc_interop.proto and provides a small demonstration
/// of using the new IRpcDispatch to write a client/server
/// </summary>
[
TestFixture
]
public
class
TestRpcGenerator
{
/// <summary>
/// A sample implementation of the ISearchService for testing
/// </summary>
private
class
ExampleSearchImpl
:
ISearchService
{
SearchResponse
ISearchService
.
Search
(
SearchRequest
searchRequest
)
{
if
(
searchRequest
.
CriteriaCount
==
0
)
{
throw
new
ArgumentException
(
"No criteria specified."
,
new
InvalidOperationException
());
}
SearchResponse
.
Builder
resp
=
SearchResponse
.
CreateBuilder
();
foreach
(
string
criteria
in
searchRequest
.
CriteriaList
)
{
resp
.
AddResults
(
SearchResponse
.
Types
.
ResultItem
.
CreateBuilder
().
SetName
(
criteria
).
SetUrl
(
"http://search.com"
).
Build
());
}
return
resp
.
Build
();
}
SearchResponse
ISearchService
.
RefineSearch
(
RefineSearchRequest
refineSearchRequest
)
{
SearchResponse
.
Builder
resp
=
refineSearchRequest
.
PreviousResults
.
ToBuilder
();
foreach
(
string
criteria
in
refineSearchRequest
.
CriteriaList
)
{
resp
.
AddResults
(
SearchResponse
.
Types
.
ResultItem
.
CreateBuilder
().
SetName
(
criteria
).
SetUrl
(
"http://refine.com"
).
Build
());
}
return
resp
.
Build
();
}
}
/// <summary>
/// An example extraction of the wire protocol
/// </summary>
private
interface
IWireTransfer
{
byte
[]
Execute
(
string
method
,
byte
[]
message
);
}
/// <summary>
/// An example of a server responding to a wire request
/// </summary>
private
class
ExampleServerHost
:
IWireTransfer
{
private
readonly
IRpcServerStub
_stub
;
public
ExampleServerHost
(
ISearchService
implementation
)
{
//on the server, we create a dispatch to call the appropriate method by name
IRpcDispatch
dispatch
=
new
SearchService
.
Dispatch
(
implementation
);
//we then wrap that dispatch in a server stub which will deserialize the wire bytes to the message
//type appropriate for the method name being invoked.
_stub
=
new
SearchService
.
ServerStub
(
dispatch
);
}
byte
[]
IWireTransfer
.
Execute
(
string
method
,
byte
[]
message
)
{
//now when we recieve a wire transmission to invoke a method by name with a byte[] or stream payload
//we just simply call the sub:
IMessageLite
response
=
_stub
.
CallMethod
(
method
,
CodedInputStream
.
CreateInstance
(
message
),
ExtensionRegistry
.
Empty
);
//now we return the expected response message:
return
response
.
ToByteArray
();
}
}
/// <summary>
/// An example of a client sending a wire request
/// </summary>
private
class
ExampleClient
:
IRpcDispatch
{
private
readonly
IWireTransfer
_wire
;
public
ExampleClient
(
IWireTransfer
wire
)
{
_wire
=
wire
;
}
TMessage
IRpcDispatch
.
CallMethod
<
TMessage
,
TBuilder
>(
string
method
,
IMessageLite
request
,
IBuilderLite
<
TMessage
,
TBuilder
>
response
)
{
byte
[]
rawResponse
=
_wire
.
Execute
(
method
,
request
.
ToByteArray
());
response
.
MergeFrom
(
rawResponse
);
return
response
.
Build
();
}
}
/// <summary>
/// Put it all together to create one seamless client/server experience full of rich-type goodness ;)
/// All you need to do is send/recieve the method name and message bytes across the wire.
/// </summary>
[
Test
]
public
void
TestClientServerDispatch
()
{
ExampleServerHost
server
=
new
ExampleServerHost
(
new
ExampleSearchImpl
());
//obviously if this was a 'real' transport we would not use the server, rather the server would be listening, the client transmitting
IWireTransfer
wire
=
server
;
ISearchService
client
=
new
SearchService
(
new
ExampleClient
(
wire
));
//now the client has a real, typed, interface to work with:
SearchResponse
result
=
client
.
Search
(
SearchRequest
.
CreateBuilder
().
AddCriteria
(
"Test"
).
Build
());
Assert
.
AreEqual
(
1
,
result
.
ResultsCount
);
Assert
.
AreEqual
(
"Test"
,
result
.
ResultsList
[
0
].
Name
);
Assert
.
AreEqual
(
"http://search.com"
,
result
.
ResultsList
[
0
].
Url
);
//The test part of this, call the only other method
result
=
client
.
RefineSearch
(
RefineSearchRequest
.
CreateBuilder
().
SetPreviousResults
(
result
).
AddCriteria
(
"Refine"
).
Build
());
Assert
.
AreEqual
(
2
,
result
.
ResultsCount
);
Assert
.
AreEqual
(
"Test"
,
result
.
ResultsList
[
0
].
Name
);
Assert
.
AreEqual
(
"http://search.com"
,
result
.
ResultsList
[
0
].
Url
);
Assert
.
AreEqual
(
"Refine"
,
result
.
ResultsList
[
1
].
Name
);
Assert
.
AreEqual
(
"http://refine.com"
,
result
.
ResultsList
[
1
].
Url
);
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment