func createCommands(options cmds.Options, bmpClient clients.BmpClient) map[string]cmds.Command {
	return map[string]cmds.Command{
		"bms":                    bmp.NewBmsCommand(options, bmpClient),
		"create-baremetals":      bmp.NewCreateBaremetalsCommand(options, bmpClient),
		"login":                  bmp.NewLoginCommand(options, bmpClient),
		"sl":                     bmp.NewSlCommand(options, bmpClient),
		"status":                 bmp.NewStatusCommand(options, bmpClient),
		"stemcells":              bmp.NewStemcellsCommand(options, bmpClient),
		"target":                 bmp.NewTargetCommand(options, bmpClient),
		"task":                   bmp.NewTaskCommand(options, bmpClient),
		"tasks":                  bmp.NewTasksCommand(options, bmpClient),
		"update-state":           bmp.NewUpdateStateCommand(options, bmpClient),
		"provisioning-baremetal": bmp.NewProvisioningBaremetalCommand(options, bmpClient),
	}
}
		fakeBmpClient *clientsfakes.FakeBmpClient
	)

	BeforeEach(func() {
		tmpDir, err = ioutil.TempDir("", "bosh-softlayer-tools")
		Expect(err).ToNot(HaveOccurred())

		args = []string{"bmp", "login"}
		options = cmds.Options{
			Verbose:  false,
			Username: "******",
			Password: "******",
		}

		fakeBmpClient = clientsfakes.NewFakeBmpClient(options.Username, options.Password, "http://fake.target.url", "fake-config-path")
		cmd = bmp.NewLoginCommand(options, fakeBmpClient)
	})

	AfterEach(func() {
		os.RemoveAll(tmpDir)
	})

	Describe("#NewLoginCommand", func() {
		It("create new LoginCommand", func() {
			Expect(cmd).ToNot(BeNil())

			cmd2 := bmp.NewLoginCommand(options, fakeBmpClient)
			Expect(cmd2).ToNot(BeNil())
			Expect(cmd2).To(Equal(cmd))
		})
	})