"github.com/cloudfoundry/bosh-bootloader/storage"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/ginkgo/extensions/table"
	. "github.com/onsi/gomega"
)

var _ = Describe("Delete LBs", func() {
	var (
		command                   commands.DeleteLBs
		awsCredentialValidator    *fakes.AWSCredentialValidator
		availabilityZoneRetriever *fakes.AvailabilityZoneRetriever
		certificateManager        *fakes.CertificateManager
		infrastructureManager     *fakes.InfrastructureManager
		logger                    *fakes.Logger
		cloudConfigurator         *fakes.BoshCloudConfigurator
		cloudConfigManager        *fakes.CloudConfigManager
		boshClient                *fakes.BOSHClient
		boshClientProvider        *fakes.BOSHClientProvider
		stateStore                *fakes.StateStore
		stateValidator            *fakes.StateValidator
		incomingState             storage.State
	)

	BeforeEach(func() {
		awsCredentialValidator = &fakes.AWSCredentialValidator{}
		availabilityZoneRetriever = &fakes.AvailabilityZoneRetriever{}
		certificateManager = &fakes.CertificateManager{}
		infrastructureManager = &fakes.InfrastructureManager{}
		cloudConfigurator = &fakes.BoshCloudConfigurator{}
		cloudConfigManager = &fakes.CloudConfigManager{}
				command := commands.UpdateLBs{}
				usageText := command.Usage()
				Expect(usageText).To(Equal(`Updates load balancer(s) with the supplied certificate, key, and optional chain

  --cert               Path to SSL certificate
  --key                Path to SSL certificate key
  [--chain]            Path to SSL certificate chain (optional)
  [--skip-if-missing]  Skips updating load balancer(s) if it is not attached (optional)`))
			})
		})
	})

	Describe("Delete LBs", func() {
		Describe("Usage", func() {
			It("returns string describing usage", func() {
				command := commands.DeleteLBs{}
				usageText := command.Usage()
				Expect(usageText).To(Equal(`Deletes load balancer(s)

  [--skip-if-missing]  Skips deleting load balancer(s) if it is not attached (optional)`))
			})
		})
	})

	Describe("Destroy", func() {
		Describe("Usage", func() {
			It("returns string describing usage", func() {
				command := commands.Destroy{}
				usageText := command.Usage()
				Expect(usageText).To(Equal(`Tears down BOSH director infrastructure