github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/providers/agent/mcorpc/aggregate/average_test.go (about)

     1  // Copyright (c) 2020-2022, R.I. Pienaar and the Choria Project contributors
     2  //
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package aggregate
     6  
     7  import (
     8  	. "github.com/onsi/ginkgo/v2"
     9  	. "github.com/onsi/gomega"
    10  )
    11  
    12  var _ = Describe("AverageAggregator", func() {
    13  	var (
    14  		err error
    15  		agg *AverageAggregator
    16  	)
    17  
    18  	BeforeEach(func() {
    19  		agg, err = NewAverageAggregator([]any{})
    20  		Expect(err).ToNot(HaveOccurred())
    21  	})
    22  
    23  	Describe("ProcessValue", func() {
    24  		It("Should process various values", func() {
    25  			Expect(agg.ProcessValue(1)).ToNot(HaveOccurred())
    26  			Expect(agg.ProcessValue(1.1)).ToNot(HaveOccurred())
    27  			Expect(agg.ProcessValue(int64(100))).ToNot(HaveOccurred())
    28  			Expect(agg.ProcessValue("1")).ToNot(HaveOccurred())
    29  			Expect(agg.ProcessValue("a")).To(HaveOccurred())
    30  
    31  			results, err := agg.ResultStrings()
    32  			Expect(err).ToNot(HaveOccurred())
    33  			Expect(results).To(Equal(map[string]string{
    34  				"Average": "25.775000",
    35  			}))
    36  
    37  			fresults, err := agg.ResultFormattedStrings("")
    38  			Expect(err).ToNot(HaveOccurred())
    39  			Expect(fresults).To(Equal([]string{
    40  				"Average: 25.775",
    41  			}))
    42  
    43  			jresults, err := agg.ResultJSON()
    44  			Expect(err).ToNot(HaveOccurred())
    45  			Expect(jresults).To(MatchJSON("{\"average\":25.775}"))
    46  		})
    47  	})
    48  })