using System.Drawing; using Lithnet.CredentialProvider; using Xunit; namespace SGU.CredentialProvider.Tests; public sealed class ProviderTileIconTests { [Fact] public void ProviderPublishesASeventyTwoPixelLogoForSignInOptions() { SguCredentialProvider provider = new(); CredentialProviderLogoControl logo = Assert.Single( provider.GetControls(UsageScenario.Logon).OfType()); Assert.Equal(ProviderTileIcon.Size, logo.Bitmap.Width); Assert.Equal(ProviderTileIcon.Size, logo.Bitmap.Height); Assert.Equal(Color.FromArgb(0, 83, 155).ToArgb(), logo.Bitmap.GetPixel(0, 0).ToArgb()); int lightPixels = 0; for (int x = 0; x < logo.Bitmap.Width; x++) { for (int y = 0; y < logo.Bitmap.Height; y++) { if (logo.Bitmap.GetPixel(x, y).GetBrightness() > 0.7f) { lightPixels++; } } } Assert.InRange(lightPixels, 200, 2_000); } [Fact] public void ProviderPublishesASingleBrandedImageAndLargeHeading() { SguCredentialProvider provider = new(); ControlBase[] controls = provider.GetControls(UsageScenario.Logon).ToArray(); Assert.Empty(controls.OfType()); Assert.Single(controls.OfType()); LargeLabelControl heading = Assert.Single(controls.OfType()); SguCredentialTile tile = Assert.IsType(provider.CreateGenericTile()); Assert.Equal("Acceso institucional SGU", heading.Label); Assert.Equal(FieldState.DisplayInBoth, heading.State); Assert.Equal(GenericTileDisplayMode.DisplayAsDedicatedTile, tile.GenericTileDisplayMode); } }