blob: b36afabbf7b4e220ba7afc28c910fca2cc08fc63 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package entity
import (
"testing"
"cloud.google.com/go/datastore"
pb "beam.apache.org/playground/backend/internal/api/v1"
"beam.apache.org/playground/backend/internal/constants"
)
func TestSnippet_ID(t *testing.T) {
sdkKey := datastore.NameKey(constants.SdkKind, pb.Sdk_SDK_GO.String(), nil)
sdkKey.Namespace = constants.Namespace
tests := []struct {
name string
snip *Snippet
want string
wantErr bool
}{
{
name: "Snippet ID() in the usual case",
snip: &Snippet{
Snippet: &SnippetEntity{
Sdk: sdkKey,
PipeOpts: "MOCK_OPTIONS",
},
Files: []*FileEntity{{
Name: "MOCK_NAME",
Content: "MOCK_CONTENT",
IsMain: false,
}},
IDMeta: &IDMeta{
IdLength: 11,
Salt: "MOCK_SALT",
},
},
want: "HLCGZQmHrRy",
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
id, err := tt.snip.ID()
if (err != nil) != tt.wantErr {
t.Errorf("ID() error = %v, wantErr %v", err, tt.wantErr)
}
if err == nil {
if len(id) != int(tt.snip.IdLength) {
t.Error("The ID length is not 11")
}
if tt.want != id {
t.Error("ID is wrong")
}
}
})
}
}