}) AfterEach(func() { tlsListener.Stop() }) Context("dropsonde metric emission", func() { BeforeEach(func() { fakeEventEmitter.Reset() metricBatcher.Reset() }) It("sends all types of messages as a protobuf", func() { for name, eventType := range events.Envelope_EventType_value { envelope := createEnvelope(events.Envelope_EventType(eventType)) conn := openTLSConnection(tlsListener.Address()) err := send(conn, envelope) Expect(err).ToNot(HaveOccurred()) Eventually(envelopeChan).Should(Receive(Equal(envelope)), fmt.Sprintf("did not receive expected event: %s", name)) conn.Close() } }) It("sends all types of messages over multiple connections", func() { for _, eventType := range events.Envelope_EventType_value { envelope1 := createEnvelope(events.Envelope_EventType(eventType)) conn1 := openTLSConnection(tlsListener.Address()) envelope2 := createEnvelope(events.Envelope_EventType(eventType))
}) JustBeforeEach(func() { var err error tlsListener, err = listeners.NewTLSListener("aname", "127.0.0.1:0", tlsListenerConfig, envelopeChan, loggertesthelper.Logger()) Expect(err).NotTo(HaveOccurred()) go tlsListener.Start() }) AfterEach(func() { tlsListener.Stop() }) Context("With invalid client configuration", func() { JustBeforeEach(func() { conn := openTLSConnection(tlsListener.Address(), tlsClientConfig) conn.Close() }) Context("without a CA file", func() { It("fails", func() { tlsClientConfig, err := listeners.NewTLSConfig("fixtures/client.crt", "fixtures/client.key", "") Expect(err).NotTo(HaveOccurred()) tlsClientConfig.ServerName = "doppler" _, err = tls.Dial("tcp", tlsListener.Address(), tlsClientConfig) Expect(err).To(MatchError("x509: certificate signed by unknown authority")) }) }) Context("without a server name", func() {