func TestKerberos(t *testing.T) { testutil.VerifyTestType(t, testutil.KerberosTestType) Convey("Should be able to run mongoexport with Kerberos auth", t, func() { opts, err := testutil.GetKerberosOptions() So(err, ShouldBeNil) sessionProvider, err := db.NewSessionProvider(*opts) So(err, ShouldBeNil) export := MongoExport{ ToolOptions: *opts, OutputOpts: &OutputFormatOptions{}, InputOpts: &InputOptions{}, SessionProvider: sessionProvider, } var out bytes.Buffer num, err := export.exportInternal(&out) So(err, ShouldBeNil) So(num, ShouldEqual, 1) outputLines := strings.Split(strings.TrimSpace(out.String()), "\n") So(len(outputLines), ShouldEqual, 1) outMap := map[string]interface{}{} So(json.Unmarshal([]byte(outputLines[0]), &outMap), ShouldBeNil) So(outMap["kerberos"], ShouldEqual, true) So(outMap["authenticated"], ShouldEqual, "yeah") So(outMap["_id"].(map[string]interface{})["$oid"], ShouldEqual, "528fb35afb3a8030e2f643c3") }) }
func TestKerberos(t *testing.T) { testutil.VerifyTestType(t, testutil.KerberosTestType) Convey("Should be able to run mongoexport with Kerberos auth", t, func() { opts, err := testutil.GetKerberosOptions() So(err, ShouldBeNil) sessionProvider, err := db.NewSessionProvider(*opts) So(err, ShouldBeNil) export := MongoExport{ ToolOptions: *opts, OutputOpts: &OutputFormatOptions{}, InputOpts: &InputOptions{}, SessionProvider: sessionProvider, } var out bytes.Buffer num, err := export.exportInternal(&out) So(err, ShouldBeNil) So(num, ShouldEqual, 1) outputLines := strings.Split(strings.TrimSpace(out.String()), "\n") So(len(outputLines), ShouldEqual, 1) So(outputLines[0], ShouldEqual, "{\"_id\":{\"$oid\":\"528fb35afb3a8030e2f643c3\"},"+ "\"authenticated\":\"yeah\",\"kerberos\":true}") }) }
func TestMongoDumpKerberos(t *testing.T) { testutil.VerifyTestType(t, testutil.KerberosTestType) Convey("Should be able to run mongodump with Kerberos auth", t, func() { opts, err := testutil.GetKerberosOptions() So(err, ShouldBeNil) mongoDump := MongoDump{ ToolOptions: opts, InputOptions: &InputOptions{}, OutputOptions: &OutputOptions{ NumParallelCollections: 1, }, } mongoDump.OutputOptions.Out = KerberosDumpDirectory err = mongoDump.Init() So(err, ShouldBeNil) err = mongoDump.Dump() So(err, ShouldBeNil) path, err := os.Getwd() So(err, ShouldBeNil) dumpDir := util.ToUniversalPath(filepath.Join(path, KerberosDumpDirectory)) dumpDBDir := util.ToUniversalPath(filepath.Join(dumpDir, opts.Namespace.DB)) So(fileDirExists(dumpDir), ShouldBeTrue) So(fileDirExists(dumpDBDir), ShouldBeTrue) dumpCollectionFile := util.ToUniversalPath(filepath.Join(dumpDBDir, opts.Namespace.Collection+".bson")) So(fileDirExists(dumpCollectionFile), ShouldBeTrue) countColls, err := countNonIndexBSONFiles(dumpDBDir) So(err, ShouldBeNil) So(countColls, ShouldEqual, 1) }) }