public void WriteOperationsOnRequestsShouldThrow()
 {
     using (MemoryStream stream = new MemoryStream())
     {
         var    context    = this.CreateJsonLightOutputContext(stream, writingResponse: false);
         var    serializer = new ODataJsonLightEntryAndFeedSerializer(context);
         Action test       = () => serializer.WriteOperations(new ODataOperation[] { new ODataAction {
                                                                                         Metadata = new Uri("#foo", UriKind.Relative)
                                                                                     } }, /*isAction*/ true);
         test.ShouldThrow <ODataException>().WithMessage(ErrorStrings.WriterValidationUtils_OperationInRequest("#foo"));
     }
 }
        private string SerializeJsonFragment(Action <ODataJsonLightEntryAndFeedSerializer> writeWithSerializer)
        {
            string result;

            using (MemoryStream stream = new MemoryStream())
            {
                var context    = this.CreateJsonLightOutputContext(stream);
                var serializer = new ODataJsonLightEntryAndFeedSerializer(context);
                serializer.JsonWriter.StartObjectScope();
                writeWithSerializer(serializer);
                serializer.JsonWriter.Flush();

                stream.Seek(0, SeekOrigin.Begin);
                result = new StreamReader(stream).ReadToEnd();
            }

            return(result);
        }
        private void WriteOperationsAndValidatePayload(IEnumerable <ODataOperation> operations, string expectedPayload, bool isAction = true, bool setMetadataDocumentUri = true, bool writeMetadataAnnotation = false)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                var context    = this.CreateJsonLightOutputContext(stream, /*writingResponse*/ true, setMetadataDocumentUri);
                var serializer = new ODataJsonLightEntryAndFeedSerializer(context);
                serializer.JsonWriter.StartObjectScope();
                if (writeMetadataAnnotation)
                {
                    serializer.WriteContextUriProperty(ODataPayloadKind.ServiceDocument);
                }

                serializer.WriteOperations(operations, isAction);
                serializer.JsonWriter.EndObjectScope();
                context.Flush();
                stream.Position = 0;
                string actualPayload = (new StreamReader(stream)).ReadToEnd();
                Assert.Equal(expectedPayload, actualPayload);
            }
        }