public async void GetInfoSendsMessageToHost()
            {
                await CompleteInitializationAsync();

                var expectedInfo     = new ContainerInfo();
                var expectedResponse = new ContainerInfoResponse(0, expectedInfo);

                this.launcher.SendMessageAsync <ContainerInfoRequest, ContainerInfoResponse>(Arg.Any <ContainerInfoRequest>()).ReturnsTask(expectedResponse);

                var info = await proxy.GetInfoAsync();

                Assert.Same(expectedInfo, info);
            }
            public async void WhenContainerProxyHasEvents_MergesIntoResponseEvents()
            {
                await CompleteInitializationAsync();

                launcher.HostStopped += Raise.Event <EventHandler <int> >(this, 100);

                var expectedInfo     = new ContainerInfo();
                var expectedResponse = new ContainerInfoResponse(0, expectedInfo);

                this.launcher.SendMessageAsync <ContainerInfoRequest, ContainerInfoResponse>(Arg.Any <ContainerInfoRequest>()).ReturnsTask(expectedResponse);

                var info = await proxy.GetInfoAsync();

                Assert.Collection(info.Events,
                                  x => Assert.Equal("Application's ContainerHost stopped with exit code: 100.", x));
            }