// TestGetInterface implements getting the name of an interface
func TestGetInterface(t *testing.T) {
	var (
		d            *ICSPTest
		c            *icsp.ICSPClient
		s            icsp.Server
		serialNumber string
		err          error
		data         icsp.Interface
	)
	if os.Getenv("ICSP_TEST_ACCEPTANCE") == "true" {
		log.Debug("implements acceptance test for TestGetInterfaceName")
		d, c = getTestDriverA()
		if c == nil {
			t.Fatalf("Failed to execute getTestDriver() ")
		}
		if os.Getenv("ONEVIEW_TEST_PROVISION") == "true" {
			serialNumber = d.Tc.GetTestData(d.Env, "FreeBladeSerialNumber").(string)
			s, err = c.GetServerBySerialNumber(serialNumber)
		} else {
			serialNumber = d.Tc.GetTestData(d.Env, "SerialNumber").(string)
			s, err = c.GetServerBySerialNumber(serialNumber)
		}

		data, err = s.GetInterface(0)
		assert.NoError(t, err, "GetInterface threw error -> %s, %+v\n", err, data)
		assert.True(t, len(data.Slot) > 0, "Failed to get a an interface name -> %+v", data)
		log.Infof("Interface name -> %+v", data.Slot)

		data, err = s.GetInterface(1)
		assert.NoError(t, err, "GetInterface threw error -> %s, %+v\n", err, data)
		assert.True(t, len(data.Slot) > 0, "Failed to get a an interface name -> %+v", data)
		log.Infof("Interface name -> %+v", data.Slot)
	} else {
		log.Debug("implements unit test for TestGetInterfaceName")
		d, c = getTestDriverU()
		jsonServerData := d.Tc.GetTestData(d.Env, "ServerJSONString").(string)
		log.Debugf("jsonServerData => %s", jsonServerData)
		err = json.Unmarshal([]byte(jsonServerData), &s)
		assert.NoError(t, err, "Unmarshal Server threw error -> %s, %+v\n", err, jsonServerData)

		log.Debugf("server -> %v", s)

		data, err = s.GetInterface(0)
		log.Infof("Interface Name -> %+v", data)
		assert.True(t, len(data.Slot) > 0, "Failed to get a valid list of interfaces -> %+v", data)
	}
}