@@ -33,6 +33,11 @@ type mockMetadata struct {
33
33
mock.Mock
34
34
}
35
35
36
+ func (m * mockMetadata ) Hostname () (string , error ) {
37
+ args := m .MethodCalled ("Hostname" )
38
+ return args .String (0 ), args .Error (1 )
39
+ }
40
+
36
41
func (m * mockMetadata ) FQDN () (string , error ) {
37
42
args := m .MethodCalled ("FQDN" )
38
43
return args .String (0 ), args .Error (1 )
@@ -54,7 +59,7 @@ func TestDetectFQDNAvailable(t *testing.T) {
54
59
md .On ("FQDN" ).Return ("fqdn" , nil )
55
60
md .On ("OSType" ).Return ("DARWIN" , nil )
56
61
57
- detector := & Detector {provider : md }
62
+ detector := & Detector {provider : md , logger : zap . NewNop () }
58
63
res , err := detector .Detect (context .Background ())
59
64
require .NoError (t , err )
60
65
md .AssertExpectations (t )
@@ -70,23 +75,45 @@ func TestDetectFQDNAvailable(t *testing.T) {
70
75
71
76
}
72
77
78
+ func TestFallbackHostname (t * testing.T ) {
79
+ mdHostname := & mockMetadata {}
80
+ mdHostname .On ("Hostname" ).Return ("hostname" , nil )
81
+ mdHostname .On ("FQDN" ).Return ("" , errors .New ("err" ))
82
+ mdHostname .On ("OSType" ).Return ("DARWIN" , nil )
83
+
84
+ detector := & Detector {provider : mdHostname , logger : zap .NewNop ()}
85
+ res , err := detector .Detect (context .Background ())
86
+ require .NoError (t , err )
87
+ mdHostname .AssertExpectations (t )
88
+ res .Attributes ().Sort ()
89
+
90
+ expected := internal .NewResource (map [string ]interface {}{
91
+ conventions .AttributeHostName : "hostname" ,
92
+ conventions .AttributeOSType : "DARWIN" ,
93
+ })
94
+ expected .Attributes ().Sort ()
95
+
96
+ assert .Equal (t , expected , res )
97
+ }
98
+
73
99
func TestDetectError (t * testing.T ) {
74
- // FQDN fails
100
+ // FQDN and hostname fail
75
101
mdFQDN := & mockMetadata {}
76
102
mdFQDN .On ("OSType" ).Return ("WINDOWS" , nil )
77
103
mdFQDN .On ("FQDN" ).Return ("" , errors .New ("err" ))
104
+ mdFQDN .On ("Hostname" ).Return ("" , errors .New ("err" ))
78
105
79
- detector := & Detector {provider : mdFQDN }
106
+ detector := & Detector {provider : mdFQDN , logger : zap . NewNop () }
80
107
res , err := detector .Detect (context .Background ())
81
108
assert .Error (t , err )
82
109
assert .True (t , internal .IsEmptyResource (res ))
83
110
84
- // Hostname fails
85
- mdHostname := & mockMetadata {}
86
- mdHostname .On ("FQDN" ).Return ("fqdn" , nil )
87
- mdHostname .On ("OSType" ).Return ("" , errors .New ("err" ))
111
+ // OS type fails
112
+ mdOSType := & mockMetadata {}
113
+ mdOSType .On ("FQDN" ).Return ("fqdn" , nil )
114
+ mdOSType .On ("OSType" ).Return ("" , errors .New ("err" ))
88
115
89
- detector = & Detector {provider : mdHostname }
116
+ detector = & Detector {provider : mdOSType , logger : zap . NewNop () }
90
117
res , err = detector .Detect (context .Background ())
91
118
assert .Error (t , err )
92
119
assert .True (t , internal .IsEmptyResource (res ))
0 commit comments