github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/baremetal/v1/nodes/testing/results_test.go (about) 1 package testing 2 3 import ( 4 "testing" 5 6 "github.com/vnpaycloud-console/gophercloud/v2/openstack/baremetal/inventory" 7 invtest "github.com/vnpaycloud-console/gophercloud/v2/openstack/baremetal/inventory/testing" 8 "github.com/vnpaycloud-console/gophercloud/v2/openstack/baremetal/v1/nodes" 9 "github.com/vnpaycloud-console/gophercloud/v2/openstack/baremetalintrospection/v1/introspection" 10 insptest "github.com/vnpaycloud-console/gophercloud/v2/openstack/baremetalintrospection/v1/introspection/testing" 11 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 12 ) 13 14 func TestStandardPluginData(t *testing.T) { 15 var pluginData nodes.PluginData 16 err := pluginData.RawMessage.UnmarshalJSON([]byte(invtest.StandardPluginDataSample)) 17 th.AssertNoErr(t, err) 18 19 parsedData, err := pluginData.AsStandardData() 20 th.AssertNoErr(t, err) 21 th.CheckDeepEquals(t, invtest.StandardPluginData, parsedData) 22 23 irData, inspData, err := pluginData.GuessFormat() 24 th.AssertNoErr(t, err) 25 th.CheckDeepEquals(t, invtest.StandardPluginData, *irData) 26 th.CheckEquals(t, (*introspection.Data)(nil), inspData) 27 } 28 29 func TestInspectorPluginData(t *testing.T) { 30 var pluginData nodes.PluginData 31 err := pluginData.RawMessage.UnmarshalJSON([]byte(insptest.IntrospectionDataJSONSample)) 32 th.AssertNoErr(t, err) 33 34 parsedData, err := pluginData.AsInspectorData() 35 th.AssertNoErr(t, err) 36 th.CheckDeepEquals(t, insptest.IntrospectionDataRes, parsedData) 37 38 irData, inspData, err := pluginData.GuessFormat() 39 th.AssertNoErr(t, err) 40 th.CheckEquals(t, (*inventory.StandardPluginData)(nil), irData) 41 th.CheckDeepEquals(t, insptest.IntrospectionDataRes, *inspData) 42 } 43 44 func TestGuessFormatUnknownDefaultsToIronic(t *testing.T) { 45 var pluginData nodes.PluginData 46 err := pluginData.RawMessage.UnmarshalJSON([]byte("{}")) 47 th.AssertNoErr(t, err) 48 49 irData, inspData, err := pluginData.GuessFormat() 50 th.CheckDeepEquals(t, inventory.StandardPluginData{}, *irData) 51 th.CheckEquals(t, (*introspection.Data)(nil), inspData) 52 th.AssertNoErr(t, err) 53 } 54 55 func TestGuessFormatErrors(t *testing.T) { 56 var pluginData nodes.PluginData 57 err := pluginData.RawMessage.UnmarshalJSON([]byte("\"banana\"")) 58 th.AssertNoErr(t, err) 59 60 irData, inspData, err := pluginData.GuessFormat() 61 th.CheckEquals(t, (*inventory.StandardPluginData)(nil), irData) 62 th.CheckEquals(t, (*introspection.Data)(nil), inspData) 63 th.AssertErr(t, err) 64 65 failsInspectorConversion := `{ 66 "interfaces": "banana" 67 }` 68 err = pluginData.RawMessage.UnmarshalJSON([]byte(failsInspectorConversion)) 69 th.AssertNoErr(t, err) 70 71 irData, inspData, err = pluginData.GuessFormat() 72 th.CheckEquals(t, (*inventory.StandardPluginData)(nil), irData) 73 th.CheckEquals(t, (*introspection.Data)(nil), inspData) 74 th.AssertErr(t, err) 75 }