})

	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))
Пример #2
0
	})

	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() {