blob: f89f38c1c2514076aea3b9cac1381c0f48a45319 [file] [log] [blame]
Paul Duffin047fdca2020-02-21 16:06:25 +00001// Copyright (C) 2020 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package sdk
16
17import (
18 "testing"
19
20 "android/soong/android"
21)
22
23type removeFredTransformation struct {
24 identityTransformation
25}
26
27func (t removeFredTransformation) transformProperty(name string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
28 if name == "fred" {
29 return nil, nil
30 }
31 return value, tag
32}
33
Paul Duffin180a0062020-02-21 16:06:25 +000034func (t removeFredTransformation) transformPropertySetBeforeContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
Paul Duffin047fdca2020-02-21 16:06:25 +000035 if name == "fred" {
36 return nil, nil
37 }
38 return propertySet, tag
39}
40
Paul Duffin180a0062020-02-21 16:06:25 +000041func (t removeFredTransformation) transformPropertySetAfterContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
42 if len(propertySet.properties) == 0 {
43 return nil, nil
44 }
45 return propertySet, tag
46}
47
Paul Duffin047fdca2020-02-21 16:06:25 +000048func TestTransformRemoveProperty(t *testing.T) {
49
50 helper := &TestHelper{t}
51
52 set := newPropertySet()
53 set.AddProperty("name", "name")
54 set.AddProperty("fred", "12")
55
56 set.transformContents(removeFredTransformation{})
57
58 contents := &generatedContents{}
59 outputPropertySet(contents, set)
60 helper.AssertTrimmedStringEquals("removing property failed", "name: \"name\",\\n", contents.content.String())
61}
62
63func TestTransformRemovePropertySet(t *testing.T) {
64
65 helper := &TestHelper{t}
66
67 set := newPropertySet()
68 set.AddProperty("name", "name")
69 set.AddPropertySet("fred")
70
71 set.transformContents(removeFredTransformation{})
72
73 contents := &generatedContents{}
74 outputPropertySet(contents, set)
75 helper.AssertTrimmedStringEquals("removing property set failed", "name: \"name\",\\n", contents.content.String())
76}