public void MergeTrailingMetadataHandlers() { Action <Metadata> handler1 = metadata => { }; Action <Metadata> handler2 = metadata => { }; var settings = CallSettings.Merge( CallSettings.FromTrailingMetadataHandler(handler1), CallSettings.FromTrailingMetadataHandler(handler2)); Assert.Equal(handler1 + handler2, settings.TrailingMetadataHandler); }
public void Merge_HeaderMutationOrdering() { Action <Metadata> clearAndAddFoo = m => { m.Clear(); m.Add("foo", "bar"); }; Action <Metadata> addSample = m => m.Add("sample", "value"); CallSettings clearAndAddFooSettings = new CallSettings(null, null, null, clearAndAddFoo, null, null); CallSettings addSampleSettings = new CallSettings(null, null, null, addSample, null, null); var merged1 = CallSettings.Merge(clearAndAddFooSettings, addSampleSettings); var merged2 = CallSettings.Merge(addSampleSettings, clearAndAddFooSettings); // Original should be called first, so merged1 should end up with foo and sample; // merged2 should end up with just foo. var metadata = new Metadata(); merged1.HeaderMutation(metadata); Assert.Equal(2, metadata.Count); metadata = new Metadata(); merged2.HeaderMutation(metadata); Assert.Equal(1, metadata.Count); }