public void TestGetAllMessageTypes(IEnumerable <DataObject> messageTypes)
        {
            foreach (var dataService in DataServices)
            {
                // Arrange.
                var objsToUpdate = messageTypes.ToArray();
                if (objsToUpdate.Length > 0)
                {
                    dataService.UpdateObjects(ref objsToUpdate);
                }

                // Reset DataObjects status
                foreach (var item in objsToUpdate)
                {
                    item.Prototyping(false);
                }

                var component = new DataServiceObjectRepository(dataService, GetMockStatisticsService());

                // Act.
                var actualList = component.GetAllMessageTypes();

                // Assert.
                Assert.Equal(objsToUpdate.Length, actualList.Count());

                if (objsToUpdate.Length > 0)
                {
                    ObjectRepositoryTestHelper.CheckPropertiesOfAllObjects(actualList, objsToUpdate, new[] { "ID", "Name" });
                }
            }
        }
        public void TestDeleteSendingPermission()
        {
            foreach (var dataService in DataServices)
            {
                var clientId      = "Client 1";
                var messageTypeId = "Message type 1";
                var client        = new Client()
                {
                    ID = clientId, Name = "Client name 1"
                };
                var messageType = new MessageType()
                {
                    ID = messageTypeId, Name = "Message type name 1"
                };
                var sendingPermission = new SendingPermission()
                {
                    Client = client, MessageType = messageType
                };

                DataObject[] objsToUpdate = { client, messageType, sendingPermission };
                dataService.UpdateObjects(ref objsToUpdate);

                var component = new DataServiceObjectRepository(dataService, GetMockStatisticsService());

                var actualList = component.GetRestrictionsForClient(clientId);
                Assert.Equal(actualList.Count(), 1);

                // Act.
                component.DeleteSendingPermission(clientId, messageTypeId);

                var newActualList = component.GetRestrictionsForClient(clientId);
                Assert.Equal(newActualList.Count(), 0);
            }
        }
        public void TestGetRestrictionsForMsgType(IEnumerable <DataObject> sendingPermissions)
        {
            foreach (var dataService in DataServices)
            {
                // Arrange.
                var messageTypeId           = "Some MessageType ID";
                var sendingPermissionsArray = sendingPermissions.ToArray();

                if (sendingPermissionsArray.Length > 0)
                {
                    var          client1      = ((SendingPermission)sendingPermissionsArray[0]).Client;
                    var          client2      = ((SendingPermission)sendingPermissionsArray[1]).Client;
                    var          messageType1 = ((SendingPermission)sendingPermissionsArray[0]).MessageType;
                    var          messageType2 = ((SendingPermission)sendingPermissionsArray[1]).MessageType;
                    DataObject[] objsToUpdate =
                    {
                        client1,                    client2, messageType1, messageType2,
                        sendingPermissionsArray[0], sendingPermissionsArray[1]
                    };

                    messageTypeId = messageType2.ID;

                    dataService.UpdateObjects(ref objsToUpdate);

                    // Reset DataObjects status
                    foreach (var item in objsToUpdate)
                    {
                        item.Prototyping(false);
                    }
                }

                var component = new DataServiceObjectRepository(dataService, GetMockStatisticsService());

                // Act.
                var actualList = component.GetRestrictionsForMsgType(messageTypeId);

                // Assert.
                Assert.Equal(sendingPermissionsArray.Length > 0 ? 1 : 0, actualList.Count());

                if (sendingPermissionsArray.Length > 0)
                {
                    var isActualListContainsRectriction = actualList.Count(r => r.MessageType.ID == messageTypeId) == 1;
                    Assert.True(isActualListContainsRectriction);
                }
            }
        }
        public void TestGetAllRestrictions(IEnumerable <DataObject> sendingPermissions)
        {
            foreach (var dataService in DataServices)
            {
                // Arrange.
                var sendingPermissionsArray = sendingPermissions.ToArray();

                if (sendingPermissionsArray.Length > 0)
                {
                    var          client1      = ((SendingPermission)sendingPermissionsArray[0]).Client;
                    var          client2      = ((SendingPermission)sendingPermissionsArray[1]).Client;
                    var          messageType1 = ((SendingPermission)sendingPermissionsArray[0]).MessageType;
                    var          messageType2 = ((SendingPermission)sendingPermissionsArray[1]).MessageType;
                    DataObject[] objsToUpdate =
                    {
                        client1,                    client2, messageType1, messageType2,
                        sendingPermissionsArray[0], sendingPermissionsArray[1]
                    };

                    dataService.UpdateObjects(ref objsToUpdate);

                    // Reset DataObjects status
                    foreach (var item in objsToUpdate)
                    {
                        item.Prototyping(false);
                    }
                }

                var component = new DataServiceObjectRepository(dataService, GetMockStatisticsService());

                // Act.
                var actualList = component.GetAllRestrictions();

                // Assert.
                Assert.Equal(sendingPermissionsArray.Length, actualList.Count());

                if (sendingPermissionsArray.Length > 0)
                {
                    ObjectRepositoryTestHelper.CheckPropertiesOfAllObjects(actualList, sendingPermissionsArray, new[] { "Client.ID" });
                }
            }
        }