@@ -464,6 +464,53 @@ public interface AuthMarker
464464 }
465465 }
466466
467+ [ Fact ]
468+ public void Build_DoesNotTreatApiDefinitionHelperExportsAsNativeClasses ( )
469+ {
470+ var repoRoot = Path . Combine ( Path . GetTempPath ( ) , $ "firebase-binding-surface-builder-{ Guid . NewGuid ( ) : N} ") ;
471+
472+ try
473+ {
474+ var sourceDirectory = Path . Combine ( repoRoot , "source" , "Firebase" , "Auth" ) ;
475+ Directory . CreateDirectory ( sourceDirectory ) ;
476+ File . WriteAllText (
477+ Path . Combine ( sourceDirectory , "ApiDefinition.cs" ) ,
478+ """
479+ namespace Firebase.Auth;
480+
481+ public interface InstallationIdChangedEventArgs
482+ {
483+ [Export("kFIRInstallationIDDidChangeNotificationAppNameKey")]
484+ string AppName { get; set; }
485+ }
486+ """ ) ;
487+
488+ var document = new BindingSurfaceCoverageBuilder ( CreateConfiguration ( ) ) . Build (
489+ repoRoot ,
490+ CreateManifest ( ) ,
491+ "Auth" ) ;
492+
493+ var surface = Assert . Single (
494+ document . Targets . Single ( ) . Surfaces ,
495+ static surface => surface . MemberName == "AppName" ) ;
496+
497+ Assert . Equal ( "manual-property" , surface . Kind ) ;
498+ Assert . Null ( surface . ObjectiveCName ) ;
499+ Assert . Empty ( surface . NativeSelectors ) ;
500+ Assert . Equal ( "Export" , surface . BindingAttribute ) ;
501+ Assert . Equal ( "kFIRInstallationIDDidChangeNotificationAppNameKey" , surface . BindingValue ) ;
502+ Assert . True ( surface . HasGetter ) ;
503+ Assert . False ( surface . HasSetter ) ;
504+ }
505+ finally
506+ {
507+ if ( Directory . Exists ( repoRoot ) )
508+ {
509+ Directory . Delete ( repoRoot , recursive : true ) ;
510+ }
511+ }
512+ }
513+
467514 [ Fact ]
468515 public void Build_IncludesImplicitlyPublicInterfaceHelperMembers ( )
469516 {
0 commit comments