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  }