Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
from attr import define
from .AdvancedCommerceEffective import AdvancedCommerceEffective
from .HelperValidationUtils import HelperValidationUtils
from .LibraryUtility import AttrsRawValueAware

@define
class AdvancedCommerceSubscriptionModifyDescriptors():
class AdvancedCommerceSubscriptionModifyDescriptors(AttrsRawValueAware):
"""
The data your app provides to change the description and display name of an auto-renewable subscription.

Expand All @@ -33,4 +34,4 @@ class AdvancedCommerceSubscriptionModifyDescriptors():
)
"""
https://developer.apple.com/documentation/advancedcommerceapi/displayname
"""
"""
29 changes: 29 additions & 0 deletions tests/test_advanced_commerce_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,35 @@ def test_advanced_commerce_subscription_modify_descriptors_deserialization(self)

self.assertEqual("description", descriptors.description)
self.assertEqual("displayName", descriptors.displayName)

self.assertEqual(AdvancedCommerceEffective(descriptors_dict["effective"]), descriptors.effective)
self.assertEqual(descriptors_dict["effective"], descriptors.rawEffective)

def test_modify_descriptors_raw_effective_initialization(self):
for effective in AdvancedCommerceEffective:
with self.subTest(effective=effective):
descriptors = AdvancedCommerceSubscriptionModifyDescriptors(rawEffective=effective.value)
self.assertEqual(effective, descriptors.effective)
self.assertEqual(effective.value, descriptors.rawEffective)

def test_modify_descriptors_effective_round_trip(self):
converter = _get_cattrs_converter(AdvancedCommerceSubscriptionModifyDescriptors)
for effective in AdvancedCommerceEffective:
with self.subTest(effective=effective):
descriptors = AdvancedCommerceSubscriptionModifyDescriptors(effective=effective)
serialized = converter.unstructure(descriptors)
self.assertEqual({"effective": effective.value}, serialized)
restored = converter.structure(serialized, AdvancedCommerceSubscriptionModifyDescriptors)
self.assertEqual(descriptors, restored)

def test_modify_descriptors_unknown_effective(self):
descriptors = AdvancedCommerceSubscriptionModifyDescriptors(rawEffective="FUTURE_VALUE")
self.assertIsNone(descriptors.effective)
self.assertEqual("FUTURE_VALUE", descriptors.rawEffective)
descriptors.rawEffective = AdvancedCommerceEffective.NEXT_BILL_CYCLE.value
self.assertEqual(AdvancedCommerceEffective.NEXT_BILL_CYCLE, descriptors.effective)
descriptors.effective = AdvancedCommerceEffective.IMMEDIATELY
self.assertEqual("IMMEDIATELY", descriptors.rawEffective)

def test_advanced_commerce_subscription_change_metadata_descriptors_deserialization(self):
json_data = read_data_from_file('tests/resources/models/advancedCommerceSubscriptionChangeMetadataDescriptors.json')
Expand Down