This repository contains a collection of pact plugin scenarios for the .NET Interop with the Pact FFI shared library.
.
├── Avro
│ ├── AvroClient
│ ├── AvroClient.Tests
│ ├── AvroProvider
│ └── AvroProvider.Tests
├── Grpc
│ ├── GrpcGreeter
│ ├── GrpcGreeter.Tests
│ ├── GrpcGreeterClient
│ └── GrpcGreeterClient.Tests
├── Pact
│ ├── Pact.cs
│ └── Pact.csproj
├── Plugin
│ └── FooPluginConsumer.Tests
├── Protobuf
│ ├── Protos
│ ├── RouteGuide
│ ├── RouteGuideClient
│ ├── RouteGuideClient.Tests
│ ├── RouteGuideServer
│ └── RouteGuideServer.Tests
├── README.md
└── Tcp
├── TcpClient
├── TcpClient.Tests
├── TcpListener
└── TcpListener.Tests
Simple Avro example utilising Apache.Avro library to send HTTP messages in Avro format.
- Type: Synchronous/HTTP
- Transport: HTTP
- Message Format: Avro
- Plugin: pact-avro-plugin
- Pact File:
./Avro/pacts/AvroConsumer-AvroProvider.json
- Other Reference Impls
Simple gRPC greeter client.
Adapted for Pact, from Microsoft's gRPC sample - Tutorial: Create a gRPC client and server in ASP.NET Core
- Type: Synchronous/Messages
- Transport: gRPC
- Message Format: Protobuf
- Plugin: pact-protobuf-plugin
- Pact File:
./Grpc/pacts/grpc-greeter-client-dotnet-grpc-greeter.json
- Other Reference Impls
Simple example of usage of custom plugin for Pact, which concentrates on message format only.
Part of Pact create a plugin course.
Demonstrates usage of a basic plugin created in .NET
- Type: Synchronous/HTTP
- Transport: HTTP
- Message Format: foo
- Plugin: pact-dotnet-plugin
- Pact File:
./Plugin/pacts/DotnetPluginConsumer-DotnetPluginProvider.json
gRPC RouteGuide example, adapted from old .NET gRPC example.
Utilises a .NET message proxy to map Pact messages to message handlers.
- Type: Asynchronous/Messages
- Transport: gRPC
- Message Format: Protobuf
- Plugin: pact-protobuf-plugin
- Pact file:
./Protobuf/pacts/protobufmessageconsumer-protobufmessageprovider.json
- Other Reference Impls
Follows the pact-matt-plugin, as exercised in
-
Type: Synchronous/HTTP
-
Transport: HTTP
-
Message Format: matt
-
Plugin: pact-matt-plugin
-
Pact file:
./Tcp/pacts/MattConsumer-MattProvider.json
-
Other Reference Impls
-
Type: Synchronous/Messages
-
Transport: TCP
-
Message Format: matt
-
Plugin: pact-matt-plugin
-
Other Reference Impls