@@ -6,10 +6,10 @@ package config
6
6
7
7
import (
8
8
"context"
9
+ "errors"
9
10
"fmt"
10
11
"testing"
11
12
12
- "github.com/crossplane/crossplane-runtime/pkg/errors"
13
13
"github.com/crossplane/crossplane-runtime/pkg/fieldpath"
14
14
xpresource "github.com/crossplane/crossplane-runtime/pkg/resource"
15
15
"github.com/crossplane/crossplane-runtime/pkg/resource/fake"
@@ -112,3 +112,34 @@ func TestSetExternalTagsWithPaved(t *testing.T) {
112
112
})
113
113
}
114
114
}
115
+
116
+ func TestReferences_AddReference (t * testing.T ) {
117
+ t .Run ("Adding a reference" , func (t * testing.T ) {
118
+ r := & Resource {References : References {}}
119
+ err := r .References .AddReference ("forwarding_rule.certificate_name" , Reference {
120
+ TerraformName : "digitalocean_certificate" ,
121
+ })
122
+ if err != nil {
123
+ t .Fatalf ("AddReference() got error: %v" , err )
124
+ }
125
+ if len (r .References ) != 1 {
126
+ t .Fatalf ("AddReference() got error: %v" , err )
127
+ }
128
+ })
129
+ t .Run ("Adding twice a reference for a given field" , func (t * testing.T ) {
130
+ r := & Resource {References : References {}}
131
+ err := r .References .AddReference ("forwarding_rule.certificate_name" , Reference {
132
+ TerraformName : "digitalocean_certificate" ,
133
+ })
134
+ if err != nil {
135
+ t .Fatalf ("AddReference() got error: %v" , err )
136
+ }
137
+
138
+ err = r .References .AddReference ("forwarding_rule.certificate_name" , Reference {
139
+ TerraformName : "digitalocean_certificate" ,
140
+ })
141
+ if ! errors .Is (err , ErrReferenceAlreadyExists ) {
142
+ t .Fatalf ("AddReference() should have returned an error" )
143
+ }
144
+ })
145
+ }
0 commit comments