{ "testCases": [ { "description": "Modify scalar in a wrapper proto", "originalResource": { "wrapper": "a" }, "modifiedResource": { "wrapper": "b" }, "expectedMask": "wrapper" }, { "description": "Create wrapper proto", "originalResource": {}, "modifiedResource": { "wrapper": "a" }, "expectedMask": "wrapper" }, { "description": "Modify element in a repeated field", "originalResource": { "foos": [ { "num": "1" }, { "num": "2" } ] }, "modifiedResource": { "foos": [ { "num": "1" }, { "num": "3" } ] }, "expectedMask": "foos" }, { "description": "Modify element in a nested repeated field", "originalResource": { "foos": [ { "bars": [ { "num": "1" } ] } ] }, "modifiedResource": { "foos": [ { "bars": [ { "num": "2" } ] } ] }, "expectedMask": "foos" }, { "description": "Create submessages", "originalResource": {}, "modifiedResource": { "foo": { "num": 1 } }, "expectedMask": "foo.num" }, { "description": "Modify submessage", "originalResource": { "foo": {} }, "modifiedResource": { "foo": { "num": "1" } }, "expectedMask": "foo.num" }, { "description": "Clear submessage", "originalResource": { "foo": {} }, "modifiedResource": { "foo": null }, "expectedMask": "foo" }, { "description": "No change", "originalResource": { "wrapper": "a", "foos": [ { "num": "1" } ] }, "modifiedResource": { "wrapper": "a", "foos": [ { "num": "1" } ] }, "expectedMask": "" }, { "description": "Empty initial object (ForObject)", "originalResource": {}, "modifiedResource": { "wrapper": "a", "foo": { "bar": { "nested_wrapper": true } }, "foos": [ { "num": "1" } ] }, "expectedMask": "wrapper,foo.bar.nested_wrapper,foos" }, { "description": "Message fields are partially present in modified resource, not present on original resource", "originalResource": {}, "modifiedResource": { "dynamicSetting": { "domainName": "google.com", "trackingSetting": {} }, "selectiveOptimization": { "conversionAction": "ca" } }, "expectedMask": "dynamic_setting.domain_name,dynamic_setting.tracking_setting,selective_optimization.conversion_action", "allSetFieldsMask": "dynamic_setting.domain_name,dynamic_setting.tracking_setting,selective_optimization.conversion_action" }, { "description": "Default message values in modified resource, not present on original resource", "originalResource": {}, "modifiedResource": { "dynamicSetting": { "domainName": "", "useSuppliedUrlsOnly": false, "trackingSetting": { "trackingUrl": "" } }, "selectiveOptimization": {} }, "expectedMask": "dynamic_setting.domain_name,dynamic_setting.use_supplied_urls_only,dynamic_setting.tracking_setting.tracking_url,selective_optimization", "allSetFieldsMask": "dynamic_setting.use_supplied_urls_only,dynamic_setting.domain_name,dynamic_setting.tracking_setting.tracking_url,selective_optimization" }, { "description": "Message fields are empty in modified object and set in original object", "originalResource": { "dynamicSetting": { "domainName": "google.com", "trackingSetting": { "trackingUrl": "tracking.com" } }, "selectiveOptimization": { "conversionAction": "ca" } }, "modifiedResource": { "dynamicSetting": {}, "selectiveOptimization": {} }, "expectedMask": "dynamic_setting.domain_name,dynamic_setting.tracking_setting.tracking_url,selective_optimization.conversion_action", "allSetFieldsMask": "dynamic_setting,selective_optimization" }, { "description": "List field set to empty in modified resource to clear original resource list", "originalResource": { "optimizationSetting": { "optimizationTypes": [ "UNKNOWN", "CALL_CLICKS" ] } }, "modifiedResource": { "optimizationSetting": { "optimizationTypes": [] } }, "expectedMask": "optimization_setting.optimization_types", "allSetFieldsMask": "optimization_setting.optimization_types" } ] }