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

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

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

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

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

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

	} else {
		d, c = getTestDriverU("test_artifacts_bundle")
		testName = d.Tc.GetTestData(d.Env, "Name").(string)
		data, err := c.GetArtifactsBundleByName(testName)
		assert.Error(t, err, fmt.Sprintf("ALL ok, no error, caught as expected: %s,%+v\n", err, data))
	}
}
func TestCreateArtifactsBundle(t *testing.T) {
	var (
		d        *I3STest
		c        *i3s.I3SClient
		testName string
	)
	if os.Getenv("I3S_TEST_ACCEPTANCE") == "true" {
		d, c = getTestDriverA("test_artifacts_bundle")
		if c == nil {
			t.Fatalf("Failed to execute getTestDriver() ")
		}
		// find out if the test artifactsBundle already exist
		testName = d.Tc.GetTestData(d.Env, "Name").(string)

		testArtifactsBundle, err := c.GetArtifactsBundleByName(testName)
		assert.NoError(t, err, "CreateArtifactsBundle get the ArtifactsBundle error -> %s", err)

		if testArtifactsBundle.URI.IsNil() {
			testInputArtifactsBundle := i3s.InputArtifactsBundle{
				Name: testName,
			}
			err := c.CreateArtifactsBundle(testInputArtifactsBundle)
			assert.NoError(t, err, "CreateArtifactsBundle error -> %s", err)

			err = c.CreateArtifactsBundle(testInputArtifactsBundle)
			assert.Error(t, err, "CreateArtifactsBundle should error because the ArtifactsBundle already exists, err-> %s", err)

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

		// reload the test artifact bundle that we just created
		testArtifactsBundle, err = c.GetArtifactsBundleByName(testName)
		assert.NoError(t, err, "GetArtifactsBundle error -> %s", err)
	}
}
func TestDeleteArtifactsBundleNotFound(t *testing.T) {
	var (
		c                   *i3s.I3SClient
		testName            = "fake"
		testArtifactsBundle i3s.ArtifactsBundle
	)
	if os.Getenv("I3S_TEST_ACCEPTANCE") == "true" {
		_, c = getTestDriverA("test_artifacts_bundle")
		if c == nil {
			t.Fatalf("Failed to execute getTestDriver() ")
		}

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

		testArtifactsBundle, err = c.GetArtifactsBundleByName(testName)
		assert.NoError(t, err, "GetArtifactsBundleByName with deleted artifacts bundle -> %+v", err)
		assert.Equal(t, "", testArtifactsBundle.Name, fmt.Sprintf("Problem getting artifacts bundle name, %+v", testArtifactsBundle))
	} else {
		_, c = getTestDriverU("test_artifacts_bundle")
		err := c.DeleteArtifactsBundle(testName)
		assert.Error(t, err, fmt.Sprintf("All ok, no error, caught as expected: %s,%+v\n", err, testArtifactsBundle))
	}
}