Esempio n. 1
0
        public void SyncMembers_DeactivateMembers_Test()
        {
            //arrange
            var repoMock       = BuildMemberRepository();
            var pathHelperMock = BuildPathHelper();
            var fileHelperMock = BuildFileHelper();
            var memberService  = new MemberService(
                repoMock.Object, null, fileHelperMock.Object, pathHelperMock.Object, Mock.Of <IManagementDepartmentService>(), Mock.Of <ISecurityService>(), Mock.Of <IAppSettingHelper>());

            var member = new Member()
            {
                Id       = Guid.NewGuid(),
                RoleList = new List <Role>()
                {
                    new Role()
                    {
                        Id = Guid.NewGuid()
                    }
                }
            };
            var syncMember = new SyncMember()
            {
                Id                = member.Id,
                RoleList          = member.RoleList,
                AvatarFileContent = Guid.NewGuid().ToByteArray()
            };
            var syncMembers = new[] { syncMember }.ToJson();
            var activeUserIds = Enumerable.Empty <Guid>();

            //act
            memberService.SyncMembers(syncMembers, activeUserIds);
            //assert
            repoMock.Verify(r => r.UpdateManySingleProperty(It.IsAny <Expression <Func <Member, bool> > >(),
                                                            It.IsAny <Expression <Func <Member, bool> > >(), It.Is((bool b) => b)), Times.Once);
        }
Esempio n. 2
0
 private static void VerifySyncMemberInformation(SyncMember syncMember, SyncDirectionEnum syncDirection, DatabaseTypeEnum databaseType, string memberServerName, string memberDatabaseName)
 {
     Assert.Equal(syncDirection, syncMember.Properties.SyncDirection);
     Assert.Equal(databaseType, syncMember.Properties.DatabaseType);
     if (databaseType == DatabaseTypeEnum.AzureSqlDatabase)
     {
         Assert.Equal(memberDatabaseName, syncMember.Properties.DatabaseName);
         Assert.Equal(memberServerName, syncMember.Properties.ServerName);
     }
 }
 /// <summary>
 /// Converts the response from the service to a powershell sync member object
 /// </summary>
 /// <param name="resourceGroupName">The resource group the sync member is in</param>
 /// <param name="serverName">The name of the server</param>
 /// <param name="databaseName">The name of the database</param>
 /// <param name="syncMember">The sync member object from the response</param>
 /// <returns>The converted model</returns>
 public static AzureSqlSyncMemberModel CreateSyncMemberModelFromResponse(string resourceGroupName, string serverName, string databaseName, string syncGroupName, SyncMember syncMember)
 {
     return(new AzureSqlSyncMemberModel(resourceGroupName, serverName, databaseName, syncGroupName, syncMember));
 }
 /// <summary>
 /// Construct AzureSqlSyncMemberModel for Management.Sql.Models.syncMember object
 /// </summary>
 /// <param name="resourceGroupName">Resource group name</param>
 /// <param name="serverName">Server name</param>
 /// <param name="databaseName">Databse name</param>
 /// <param name="syncGroup">sync member object</param>
 public AzureSqlSyncMemberModel(string resourceGroup, string serverName, string databaseName, string syncGroupName, SyncMember syncMember)
 {
     ResourceGroupName      = resourceGroup;
     ServerName             = serverName;
     DatabaseName           = databaseName;
     ResourceId             = syncMember.Id;
     SyncGroupName          = syncGroupName;
     SyncMemberName         = syncMember.Name;
     SyncDirection          = syncMember.Properties.SyncDirection == null ? null : syncMember.Properties.SyncDirection.ToString();
     SyncAgentId            = syncMember.Properties.SyncAgentId;
     SqlServerDatabaseId    = syncMember.Properties.SqlServerDatabaseId;
     MemberServerName       = syncMember.Properties.ServerName;
     MemberDatabaseName     = syncMember.Properties.DatabaseName;
     MemberDatabaseUserName = syncMember.Properties.UserName;
     MemberDatabaseType     = syncMember.Properties.DatabaseType == null ? null : syncMember.Properties.DatabaseType.ToString();
     SyncState = syncMember.Properties.SyncState;
 }
Esempio n. 5
0
 /// <summary>
 /// Construct AzureSqlSyncMemberModel for Management.Sql.Models.syncMember object
 /// </summary>
 /// <param name="resourceGroupName">Resource group name</param>
 /// <param name="serverName">Server name</param>
 /// <param name="databaseName">Databse name</param>
 /// <param name="syncGroup">sync member object</param>
 public AzureSqlSyncMemberModel(string resourceGroup, string serverName, string databaseName, string syncGroupName, SyncMember syncMember)
 {
     ResourceGroupName      = resourceGroup;
     ServerName             = serverName;
     DatabaseName           = databaseName;
     ResourceId             = syncMember.Id;
     SyncGroupName          = syncGroupName;
     SyncMemberName         = syncMember.Name;
     SyncDirection          = syncMember.SyncDirection == null ? null : syncMember.SyncDirection.ToString();
     SyncAgentId            = syncMember.SyncAgentId;
     SqlServerDatabaseId    = syncMember.SqlServerDatabaseId == null ? null : syncMember.SqlServerDatabaseId.ToString();
     MemberServerName       = syncMember.ServerName;
     MemberDatabaseName     = syncMember.DatabaseName;
     MemberDatabaseUserName = syncMember.UserName;
     MemberDatabaseType     = syncMember.DatabaseType == null ? null : syncMember.DatabaseType.ToString();
     SyncState = syncMember.SyncState;
     UsePrivateLinkConnection          = syncMember.UsePrivateLinkConnection;
     SyncMemberAzureDatabaseResourceId = syncMember.SyncMemberAzureDatabaseResourceId;
 }
 /// <summary>
 /// Updates an existing sync member.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group that contains the resource. You can obtain
 /// this value from the Azure Resource Manager API or the portal.
 /// </param>
 /// <param name='serverName'>
 /// The name of the server.
 /// </param>
 /// <param name='databaseName'>
 /// The name of the database on which the sync group is hosted.
 /// </param>
 /// <param name='syncGroupName'>
 /// The name of the sync group on which the sync member is hosted.
 /// </param>
 /// <param name='syncMemberName'>
 /// The name of the sync member.
 /// </param>
 /// <param name='parameters'>
 /// The requested sync member resource state.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <SyncMember> BeginUpdateAsync(this ISyncMembersOperations operations, string resourceGroupName, string serverName, string databaseName, string syncGroupName, string syncMemberName, SyncMember parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, serverName, databaseName, syncGroupName, syncMemberName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Updates an existing sync member.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group that contains the resource. You can obtain
 /// this value from the Azure Resource Manager API or the portal.
 /// </param>
 /// <param name='serverName'>
 /// The name of the server.
 /// </param>
 /// <param name='databaseName'>
 /// The name of the database on which the sync group is hosted.
 /// </param>
 /// <param name='syncGroupName'>
 /// The name of the sync group on which the sync member is hosted.
 /// </param>
 /// <param name='syncMemberName'>
 /// The name of the sync member.
 /// </param>
 /// <param name='parameters'>
 /// The requested sync member resource state.
 /// </param>
 public static SyncMember BeginUpdate(this ISyncMembersOperations operations, string resourceGroupName, string serverName, string databaseName, string syncGroupName, string syncMemberName, SyncMember parameters)
 {
     return(operations.BeginUpdateAsync(resourceGroupName, serverName, databaseName, syncGroupName, syncMemberName, parameters).GetAwaiter().GetResult());
 }
        public void SyncMemberCRUDTest()
        {
            string testPrefix = "syncmembercrudtest-";

            using (SqlManagementTestContext context = new SqlManagementTestContext(this))
            {
                ResourceGroup       resourceGroup = context.CreateResourceGroup();
                SqlManagementClient sqlClient     = context.GetClient <SqlManagementClient>();
                Server server = context.CreateServer(resourceGroup);

                // Create sync database
                string   syncDatabaseName = SqlManagementTestUtilities.GenerateName(testPrefix + "sync");
                Database syncDatabase     = sqlClient.Databases.CreateOrUpdate(resourceGroup.Name, server.Name, syncDatabaseName, new Database()
                {
                    Location = server.Location,
                });
                Assert.NotNull(syncDatabase);
                Assert.NotNull(syncDatabase.Id);

                // Create database
                string   testDatabaseName = SqlManagementTestUtilities.GenerateName(testPrefix + "test");
                Database testDatabase     = sqlClient.Databases.CreateOrUpdate(resourceGroup.Name, server.Name, testDatabaseName, new Database()
                {
                    Location = server.Location,
                });
                Assert.NotNull(testDatabase);

                // Create member database
                string   memberDatabaseName = SqlManagementTestUtilities.GenerateName(testPrefix + "member");
                Database memberDatabase     = sqlClient.Databases.CreateOrUpdate(resourceGroup.Name, server.Name, memberDatabaseName, new Database()
                {
                    Location = server.Location,
                });
                Assert.NotNull(memberDatabase);

                // Create sync group
                string    syncGroupName   = SqlManagementTestUtilities.GenerateName(testPrefix + "syncgroup");
                SyncGroup createSyncGroup = sqlClient.SyncGroups.CreateOrUpdate(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, new SyncGroup
                {
                    Interval = -1, // Manual
                    ConflictResolutionPolicy = SyncConflictResolutionPolicy.MemberWin,
                    SyncDatabaseId           = syncDatabase.Id,
                    HubDatabaseUserName      = SqlManagementTestUtilities.DefaultLogin,
                    HubDatabasePassword      = SqlManagementTestUtilities.DefaultPassword
                });
                Assert.NotNull(createSyncGroup);

                #region Azure SQL database member

                // Create an Azure SQL database member
                string     syncMemberName         = SqlManagementTestUtilities.GenerateName(testPrefix + "azsyncmember");
                string     syncMemberDirection    = SyncDirection.OneWayMemberToHub;
                string     syncMemberDatabaseType = SyncMemberDbType.AzureSqlDatabase;
                SyncMember createSyncMember       = sqlClient.SyncMembers.CreateOrUpdate(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName, new SyncMember
                {
                    SyncDirection = syncMemberDirection,
                    DatabaseType  = syncMemberDatabaseType,
                    DatabaseName  = memberDatabaseName,
                    ServerName    = server.Name,
                    UserName      = SqlManagementTestUtilities.DefaultLogin,
                    Password      = SqlManagementTestUtilities.DefaultPassword,
                });
                Assert.NotNull(createSyncMember);
                Assert.Equal(syncMemberDirection, createSyncMember.SyncDirection);
                Assert.Equal(syncMemberDatabaseType, createSyncMember.DatabaseType);
                Assert.Equal(memberDatabaseName, createSyncMember.DatabaseName);
                Assert.Equal(server.Name, createSyncMember.ServerName);

                // Get Azure SQL database member
                SyncMember getSyncMember = sqlClient.SyncMembers.Get(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName);
                Assert.NotNull(getSyncMember);
                Assert.Equal(syncMemberDirection, getSyncMember.SyncDirection);
                Assert.Equal(syncMemberDatabaseType, getSyncMember.DatabaseType);
                Assert.Equal(memberDatabaseName, getSyncMember.DatabaseName);
                Assert.Equal(server.Name, getSyncMember.ServerName);

                // List sync members
                IPage <SyncMember> listSyncMembers = sqlClient.SyncMembers.ListBySyncGroup(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName);
                Assert.NotNull(listSyncMembers);
                Assert.Equal(1, listSyncMembers.Count());
                Assert.Equal(syncMemberName, listSyncMembers.Single().Name);

                // Update sync member
                string     updateSyncMemberDirection = SyncDirection.Bidirectional;
                SyncMember updateSyncMember          = sqlClient.SyncMembers.Update(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName, new SyncMember
                {
                    SyncDirection = updateSyncMemberDirection,
                    DatabaseType  = syncMemberDatabaseType,
                    UserName      = SqlManagementTestUtilities.DefaultLogin,
                    Password      = SqlManagementTestUtilities.DefaultPassword,
                });
                Assert.NotNull(updateSyncMember);
                Assert.Equal(updateSyncMemberDirection, updateSyncMember.SyncDirection);
                Assert.NotEqual(syncMemberDirection, updateSyncMemberDirection);

                // Update sync member with an empty model
                Assert.Throws <CloudException>(() =>
                {
                    sqlClient.SyncMembers.Update(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName, new SyncMember());
                });

                // Refresh member schemas
                sqlClient.SyncMembers.RefreshMemberSchema(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName);

                // List member schemas
                IPage <SyncFullSchemaProperties> memberSchemas = sqlClient.SyncMembers.ListMemberSchemas(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName);
                Assert.NotNull(memberSchemas);

                // Delete Azure SQL database member
                sqlClient.SyncMembers.Delete(resourceGroup.Name, server.Name, testDatabaseName, syncGroupName, syncMemberName);

                #endregion
            }
        }