Esempio n. 1
0
        public SecurableItemsModuleTests()
        {
            _existingClients = new List <Client>
            {
                new Client
                {
                    Id   = FabricSampleAppClientId,
                    Name = "Sample Fabric Client Application",
                    TopLevelSecurableItem = new SecurableItem
                    {
                        Id             = Guid.NewGuid(),
                        Grain          = Domain.Defaults.Authorization.AppGrain,
                        Name           = FabricSampleAppClientId,
                        ClientOwner    = FabricSampleAppClientId,
                        SecurableItems = new List <SecurableItem>
                        {
                            new SecurableItem
                            {
                                Id          = Guid.NewGuid(),
                                Grain       = Domain.Defaults.Authorization.AppGrain,
                                ClientOwner = FabricSampleAppClientId,
                                Name        = "inner-securable-1"
                            },
                            new SecurableItem
                            {
                                Id          = Guid.NewGuid(),
                                Grain       = Domain.Defaults.Authorization.AppGrain,
                                ClientOwner = FabricSampleAppClientId,
                                Name        = "inner-securable-2"
                            }
                        }
                    }
                },
                new Client
                {
                    Id   = DosClientId,
                    Name = "DOS Metadata Service",
                    TopLevelSecurableItem = new SecurableItem
                    {
                        Id             = Guid.NewGuid(),
                        Grain          = Domain.Defaults.Authorization.AppGrain,
                        Name           = DosClientId,
                        ClientOwner    = DosClientId,
                        SecurableItems = new List <SecurableItem>
                        {
                            new SecurableItem
                            {
                                Id          = Guid.NewGuid(),
                                Grain       = Domain.Defaults.Authorization.AppGrain,
                                ClientOwner = "dos-metadata-service",
                                Name        = "dos-top-level-app-sec-item"
                            },
                        }
                    }
                }
            };

            var dosSecurableItems = new List <SecurableItem>
            {
                new SecurableItem
                {
                    Id          = Guid.NewGuid(),
                    Grain       = Domain.Defaults.Authorization.DosGrain,
                    ClientOwner = DosClientId,
                    Name        = "datamarts"
                }
            };

            _mockClientStore = new Mock <IClientStore>()
                               .SetupGetClient(_existingClients)
                               .SetupAddClient();

            var secItems = _existingClients
                           .Select(c => c.TopLevelSecurableItem)
                           .Union(_existingClients.SelectMany(c => c.TopLevelSecurableItem.SecurableItems))
                           .Union(dosSecurableItems);

            _mockSecurableItemStore = new Mock <ISecurableItemStore>()
                                      .SetupGetSecurableItem(secItems.ToList());

            _mockLogger = new Mock <ILogger>();

            MockGrainStore.SetupMock(new List <Grain>
            {
                new Grain
                {
                    Id   = Guid.NewGuid(),
                    Name = Domain.Defaults.Authorization.AppGrain
                },
                new Grain
                {
                    Id   = Guid.NewGuid(),
                    Name = Domain.Defaults.Authorization.DosGrain,
                    RequiredWriteScopes = new List <string> {
                        "fabric/authorization.dos.write"
                    },
                    IsShared = true
                }
            });
        }
        public GrainModuleTests(ITestOutputHelper output)
        {
            this.output      = output;
            _existingClients = new List <Client>
            {
                new Client
                {
                    Id   = FabricSampleAppClientId,
                    Name = "Sample Fabric Client Application",
                    TopLevelSecurableItem = new SecurableItem
                    {
                        Id             = Guid.NewGuid(),
                        Grain          = Domain.Defaults.Authorization.AppGrain,
                        Name           = FabricSampleAppClientId,
                        ClientOwner    = FabricSampleAppClientId,
                        SecurableItems = new List <SecurableItem>
                        {
                            new SecurableItem
                            {
                                Id          = Guid.NewGuid(),
                                Grain       = Domain.Defaults.Authorization.AppGrain,
                                ClientOwner = FabricSampleAppClientId,
                                Name        = "inner-securable-1"
                            },
                            new SecurableItem
                            {
                                Id          = Guid.NewGuid(),
                                Grain       = Domain.Defaults.Authorization.AppGrain,
                                ClientOwner = FabricSampleAppClientId,
                                Name        = "inner-securable-2"
                            }
                        }
                    }
                },
                new Client
                {
                    Id   = DosClientId,
                    Name = "DOS Metadata Service",
                    TopLevelSecurableItem = new SecurableItem
                    {
                        Id             = Guid.NewGuid(),
                        Grain          = Domain.Defaults.Authorization.AppGrain,
                        Name           = DosClientId,
                        ClientOwner    = DosClientId,
                        SecurableItems = new List <SecurableItem>
                        {
                            new SecurableItem
                            {
                                Id          = Guid.NewGuid(),
                                Grain       = Domain.Defaults.Authorization.AppGrain,
                                ClientOwner = "dos-metadata-service",
                                Name        = "dos-top-level-app-sec-item"
                            },
                        }
                    }
                }
            };

            var dosSecurableItems = new List <SecurableItem>
            {
                new SecurableItem
                {
                    Id          = Guid.NewGuid(),
                    Grain       = Domain.Defaults.Authorization.DosGrain,
                    ClientOwner = DosClientId,
                    Name        = "datamarts"
                },
                new SecurableItem
                {
                    Name           = "level_three_a",
                    Grain          = Domain.Defaults.Authorization.DosGrain,
                    IsDeleted      = true,
                    SecurableItems = new List <SecurableItem>
                    {
                        new SecurableItem
                        {
                            Name           = "level_two",
                            IsDeleted      = true,
                            SecurableItems = new List <SecurableItem>
                            {
                                new SecurableItem
                                {
                                    Name      = "level_three_a",
                                    IsDeleted = true
                                }
                            }
                        }
                    }
                }
            };

            _mockClientStore = new Mock <IClientStore>()
                               .SetupGetClient(_existingClients)
                               .SetupAddClient();

            MockGrainStore.SetupGetAllGrain(GetGrainWithDeepGraph());

            var secItems = _existingClients
                           .Select(c => c.TopLevelSecurableItem)
                           .Union(_existingClients.SelectMany(c => c.TopLevelSecurableItem.SecurableItems))
                           .Union(dosSecurableItems);

            MockSecurableItemStore.SetupGetSecurableItem(secItems.ToList());

            _mockLogger = new Mock <ILogger>();
        }