func TestDeletePlanScript(t *testing.T) {
	var (
		d              *I3STest
		c              *i3s.I3SClient
		testName       string
		testPlanScript i3s.PlanScript
	)
	if os.Getenv("I3S_TEST_ACCEPTANCE") == "true" {
		d, c = getTestDriverA("test_plan_script")
		if c == nil {
			t.Fatalf("Failed to execute getTestDriver() ")
		}
		testName = d.Tc.GetTestData(d.Env, "Name").(string)

		err := c.DeletePlanScript(testName)
		assert.NoError(t, err, "DeletePlanScript err-> %s", err)

		testPlanScript, err = c.GetPlanScriptByName(testName)
		assert.NoError(t, err, "GetPlanScriptByName with deleted plan script-> %+v", err)
		assert.Equal(t, "", testPlanScript.Name, fmt.Sprintf("Problem getting plan script name, %+v", testPlanScript))
	} else {
		_, c = getTestDriverU("test_plan_script")
		err := c.DeletePlanScript("footest")
		assert.Error(t, err, fmt.Sprintf("ALL ok, no error, caught as expected: %s,%+v\n", err, testPlanScript))
	}

}
func TestCreatePlanScript(t *testing.T) {
	var (
		d        *I3STest
		c        *i3s.I3SClient
		testName string
	)
	if os.Getenv("I3S_TEST_ACCEPTANCE") == "true" {
		d, c = getTestDriverA("test_plan_script")
		if c == nil {
			t.Fatalf("Failed to execute getTestDriver() ")
		}
		// find out if the test plan script already exist
		testName = d.Tc.GetTestData(d.Env, "Name").(string)

		testPlanScript, err := c.GetPlanScriptByName(testName)
		assert.NoError(t, err, "CreatePlanScript get the PlanScript error -> %s", err)

		if testPlanScript.URI.IsNil() {
			testPlanScript = i3s.PlanScript{
				Name:        testName,
				Type:        d.Tc.GetTestData(d.Env, "Type").(string),
				PlanType:    d.Tc.GetTestData(d.Env, "PlanType").(string),
				Description: d.Tc.GetTestData(d.Env, "Description").(string),
				Content:     d.Tc.GetTestData(d.Env, "Content").(string),
			}
			err := c.CreatePlanScript(testPlanScript)
			assert.NoError(t, err, "CreatePlanScript error -> %s", err)

			log.Infof("Submitting the same plan script to confirm I3S will error")
			err = c.CreatePlanScript(testPlanScript)
			assert.Error(t, err, "CreatePlanScript should error because the PlanScript already exists, err-> %s", err)

		} else {
			log.Warnf("The planScript already exist, so skipping CreatePlanScript test for %s", testName)
		}

		// reload the test profile that we just created
		testPlanScript, err = c.GetPlanScriptByName(testName)
		assert.NoError(t, err, "GetPlanScript error -> %s", err)
	}
}
func TestGetPlanScriptByName(t *testing.T) {
	var (
		d        *I3STest
		c        *i3s.I3SClient
		testName string
	)
	if os.Getenv("I3S_TEST_ACCEPTANCE") == "true" {
		d, c = getTestDriverA("test_plan_script")
		if c == nil {
			t.Fatalf("Failed to execute getTestDriver() ")
		}
		testName = d.Tc.GetTestData(d.Env, "Name").(string)

		testPlanScript, err := c.GetPlanScriptByName(testName)
		assert.NoError(t, err, "GetPlanScriptByName thew an error -> %s", err)
		assert.Equal(t, testName, testPlanScript.Name)

		testPlanScript, err = c.GetPlanScriptByName("bad")
		assert.NoError(t, err, "GetPlanScriptByName with fake name -> %s", err)
		assert.Equal(t, "", testPlanScript.Name)

	} else {
		d, c = getTestDriverU("test_plan_script")
		testName = d.Tc.GetTestData(d.Env, "Name").(string)
		data, err := c.GetPlanScriptByName(testName)
		assert.Error(t, err, fmt.Sprintf("ALL ok, no error, caught as expected: %s,%+v\n", err, data))
	}
}