github.com/vmware/govmomi@v0.51.0/vim25/progress/scale_test.go (about)

     1  // © Broadcom. All Rights Reserved.
     2  // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package progress
     6  
     7  import "testing"
     8  
     9  func TestScaleMany(t *testing.T) {
    10  	ch := make(chan Report)
    11  	a := NewAggregator(dummySinker{ch})
    12  	defer a.Done()
    13  
    14  	s := Scale(a, 5)
    15  
    16  	go func() {
    17  		for i := 0; i < 5; i++ {
    18  			go func(ch chan<- Report) {
    19  				ch <- dummyReport{p: 0.0}
    20  				ch <- dummyReport{p: 50.0}
    21  				close(ch)
    22  			}(s.Sink())
    23  		}
    24  	}()
    25  
    26  	// Expect percentages to be scaled across sinks
    27  	for p := float32(0.0); p < 100.0; p += 10.0 {
    28  		r := <-ch
    29  		if r.Percentage() != p {
    30  			t.Errorf("Expected percentage to be: %.0f%%", p)
    31  		}
    32  	}
    33  }