11using Microsoft . VisualStudio . TestTools . UnitTesting ;
2- using Box . Sdk . Gen . Internal ;
3- using System . Collections . Generic ;
4- using System . Collections . ObjectModel ;
52using System ;
3+ using System . Collections . ObjectModel ;
4+ using System . Collections . Generic ;
5+ using Box . Sdk . Gen . Internal ;
66using Box . Sdk . Gen ;
77using Box . Sdk . Gen . Schemas ;
88using Box . Sdk . Gen . Managers ;
@@ -15,6 +15,23 @@ public class FolderMetadataManagerTests {
1515 public FolderMetadataManagerTests ( ) {
1616 client = new CommonsManager ( ) . GetDefaultClient ( ) ;
1717 }
18+ [ TestMethod ]
19+ public async System . Threading . Tasks . Task TestUpdatingFolderMetadata ( ) {
20+ FolderFull folder = await new CommonsManager ( ) . CreateNewFolderAsync ( ) ;
21+ string templateKey = string . Concat ( "key" , Utils . GetUUID ( ) ) ;
22+ MetadataTemplate template = await client . MetadataTemplates . CreateMetadataTemplateAsync ( requestBody : new CreateMetadataTemplateRequestBody ( scope : "enterprise" , displayName : templateKey ) { TemplateKey = templateKey , Fields = Array . AsReadOnly ( new [ ] { new CreateMetadataTemplateRequestBodyFieldsField ( type : CreateMetadataTemplateRequestBodyFieldsTypeField . String , key : "name" , displayName : "name" ) , new CreateMetadataTemplateRequestBodyFieldsField ( type : CreateMetadataTemplateRequestBodyFieldsTypeField . Float , key : "age" , displayName : "age" ) , new CreateMetadataTemplateRequestBodyFieldsField ( type : CreateMetadataTemplateRequestBodyFieldsTypeField . Date , key : "birthDate" , displayName : "birthDate" ) , new CreateMetadataTemplateRequestBodyFieldsField ( type : CreateMetadataTemplateRequestBodyFieldsTypeField . Enum , key : "countryCode" , displayName : "countryCode" ) { Options = Array . AsReadOnly ( new [ ] { new CreateMetadataTemplateRequestBodyFieldsOptionsField ( key : "US" ) , new CreateMetadataTemplateRequestBodyFieldsOptionsField ( key : "CA" ) } ) } , new CreateMetadataTemplateRequestBodyFieldsField ( type : CreateMetadataTemplateRequestBodyFieldsTypeField . MultiSelect , key : "sports" , displayName : "sports" ) { Options = Array . AsReadOnly ( new [ ] { new CreateMetadataTemplateRequestBodyFieldsOptionsField ( key : "basketball" ) , new CreateMetadataTemplateRequestBodyFieldsOptionsField ( key : "football" ) , new CreateMetadataTemplateRequestBodyFieldsOptionsField ( key : "tennis" ) } ) } } ) } ) ;
23+ MetadataFull createdMetadata = await client . FolderMetadata . CreateFolderMetadataByIdAsync ( folderId : folder . Id , scope : CreateFolderMetadataByIdScope . Enterprise , templateKey : templateKey , requestBody : new Dictionary < string , object > ( ) { { "name" , "John" } , { "age" , 23 } , { "birthDate" , "2001-01-03T02:20:50.520Z" } , { "countryCode" , "US" } , { "sports" , Array . AsReadOnly ( new [ ] { "basketball" , "tennis" } ) } } ) ;
24+ MetadataFull updatedMetadata = await client . FolderMetadata . UpdateFolderMetadataByIdAsync ( folderId : folder . Id , scope : UpdateFolderMetadataByIdScope . Enterprise , templateKey : templateKey , requestBody : Array . AsReadOnly ( new [ ] { new UpdateFolderMetadataByIdRequestBody ( ) { Op = UpdateFolderMetadataByIdRequestBodyOpField . Replace , Path = "/name" , Value = "Jack" } , new UpdateFolderMetadataByIdRequestBody ( ) { Op = UpdateFolderMetadataByIdRequestBodyOpField . Replace , Path = "/age" , Value = 24 } , new UpdateFolderMetadataByIdRequestBody ( ) { Op = UpdateFolderMetadataByIdRequestBodyOpField . Replace , Path = "/birthDate" , Value = "2000-01-03T02:20:50.520Z" } , new UpdateFolderMetadataByIdRequestBody ( ) { Op = UpdateFolderMetadataByIdRequestBodyOpField . Replace , Path = "/countryCode" , Value = "CA" } , new UpdateFolderMetadataByIdRequestBody ( ) { Op = UpdateFolderMetadataByIdRequestBodyOpField . Replace , Path = "/sports" , Value = Array . AsReadOnly ( new [ ] { "football" } ) } } ) ) ;
25+ Assert . IsTrue ( StringUtils . ToStringRepresentation ( updatedMetadata . Template ) == templateKey ) ;
26+ Assert . IsTrue ( StringUtils . ToStringRepresentation ( NullableUtils . Unwrap ( updatedMetadata . ExtraData ) [ "name" ] ) == "Jack" ) ;
27+ Assert . IsTrue ( StringUtils . ToStringRepresentation ( NullableUtils . Unwrap ( updatedMetadata . ExtraData ) [ "age" ] ) == "24" ) ;
28+ Assert . IsTrue ( StringUtils . ToStringRepresentation ( NullableUtils . Unwrap ( updatedMetadata . ExtraData ) [ "birthDate" ] ) == "2000-01-03T02:20:50.520Z" ) ;
29+ Assert . IsTrue ( StringUtils . ToStringRepresentation ( NullableUtils . Unwrap ( updatedMetadata . ExtraData ) [ "countryCode" ] ) == "CA" ) ;
30+ await client . FolderMetadata . DeleteFolderMetadataByIdAsync ( folderId : folder . Id , scope : DeleteFolderMetadataByIdScope . Enterprise , templateKey : templateKey ) ;
31+ await client . MetadataTemplates . DeleteMetadataTemplateAsync ( scope : DeleteMetadataTemplateScope . Enterprise , templateKey : templateKey ) ;
32+ await client . Folders . DeleteFolderByIdAsync ( folderId : folder . Id ) ;
33+ }
34+
1835 [ TestMethod ]
1936 public async System . Threading . Tasks . Task TestGlobalFolderMetadata ( ) {
2037 FolderFull folder = await new CommonsManager ( ) . CreateNewFolderAsync ( ) ;
0 commit comments