Exemple #1
0
        public void SearchByNameAndAge()
        {
            var user = new User()
            {
                FirstName = "Yan",
                LastName  = "Big",
                Age       = 20
            };
            var user1 = new User()
            {
                FirstName = "Yan",
                LastName  = "Little",
                Age       = 30
            };
            var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveServiceCollection = new List <IUserStorageService>()
            {
                slaveNode1, slaveNode2
            };

            var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
            var storageLog = new UserStorageServiceLog(storage);

            storageLog.Add(user);
            storageLog.Add(user1);
            Assert.AreEqual(storageLog.SearchByPredicate(u => u.FirstName == "Yan" && u.Age == 30).FirstOrDefault(), user1);
        }
        public static void Main(string[] args)
        {
            // Loading configuration from the application configuration file. This configuration is not used yet.
            var serviceConfiguration = (ServiceConfiguration)System.Configuration.ConfigurationManager.GetSection("serviceConfiguration");

            using (var host = new ServiceHost(MyDiagnostics.Create(serviceConfiguration)))
            {
                host.SmartOpen();

                var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
                var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
                var slaveServiceCollection = new List <IUserStorageService>()
                {
                    slaveNode1, slaveNode2
                };

                var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
                var storageLog = new UserStorageServiceLog(storage);
                var client     = new Client(storageLog);

                client.Run();

                Console.WriteLine("Service \"{0}\" that is implemented by \"{1}\" class is available on \"{2}\" endpoint.", host.Description.Name, host.Description.ServiceType.FullName, host.BaseAddresses.First());
                Console.WriteLine("Press <Enter> to stop the service.");
                Console.ReadLine();

                host.Close();
            }
        }
Exemple #3
0
        public void Remove_SlaveService_ExceptionThrown()
        {
            // Arrange
            var userStorageService = new UserStorageServiceSlave(new UserMemoryRepository());

            // Act
            userStorageService.Remove((u) => true);
        }
Exemple #4
0
        public void Add_ValidUserToSlaveService_ExceptionThrown()
        {
            // Arrange
            var userStorageService = new UserStorageServiceSlave(new UserMemoryRepository());
            var user = GetValidUser();

            // Assert
            Assert.Throws <NotSupportedException>(() => userStorageService.Add(user));
        }
Exemple #5
0
        public void SlaveMethodAdd_AnyUser_NotSupportedException()
        {
            User user = new User()
            {
                FirstName = "Alex", LastName = "Black", Age = 22
            };
            UserStorageServiceSlave slaveService1 = new UserStorageServiceSlave(new UserRepositoryWithState());

            Assert.Catch <NotSupportedException>(() => slaveService1.Add(user));
        }
Exemple #6
0
        public void Remove_UserIsNotInStorage_ExceptionThrown()
        {
            UserStorageServiceSlave  userStorageServiceSlave1 = new UserStorageServiceSlave(new UserRepositoryWithState());
            UserStorageServiceSlave  userStorageServiceSlave2 = new UserStorageServiceSlave(new UserRepositoryWithState());
            UserStorageServiceMaster userStorageServiceMaster = new UserStorageServiceMaster(new UserRepositoryWithState(), new List <UserStorageServiceSlave>(new[] { userStorageServiceSlave1, userStorageServiceSlave2 }));

            userStorageServiceMaster.Remove(new User()
            {
                Id = Guid.NewGuid(), FirstName = "alex", LastName = "black", Age = 24
            });
        }
Exemple #7
0
        public void MasterMethodAdd_AnyUser_UserAddedToSlaveNodes()
        {
            User user = new User()
            {
                FirstName = "Alex", LastName = "Black", Age = 22
            };
            UserStorageServiceSlave  slaveService1 = new UserStorageServiceSlave(new UserRepositoryWithState());
            UserStorageServiceSlave  slaveService2 = new UserStorageServiceSlave(new UserRepositoryWithState());
            UserStorageServiceMaster masterService = new UserStorageServiceMaster(new UserRepositoryWithState(), new List <UserStorageServiceSlave>(new[] { slaveService1, slaveService2 }));

            masterService.Add(user);

            Assert.AreEqual(1, slaveService1.Count);
            Assert.AreEqual(1, slaveService2.Count);
        }
Exemple #8
0
        public void Add_NullAsUserArgument_ExceptionThrown()
        {
            // Arrange
            var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveServiceCollection = new List <IUserStorageService>()
            {
                slaveNode1, slaveNode2
            };

            var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
            var storageLog = new UserStorageServiceLog(storage);

            // Act
            storageLog.Add(null);

            // Assert - [ExpectedException]
        }
Exemple #9
0
        public void SearchByName_Exception2()
        {
            var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveServiceCollection = new List <IUserStorageService>()
            {
                slaveNode1, slaveNode2
            };

            var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
            var storageLog = new UserStorageServiceLog(storage);
            var user       = new User()
            {
                FirstName = "Yan",
                Age       = -20
            };

            storageLog.Add(user);
            Assert.AreEqual(storageLog.SearchByAge(user.Age).FirstOrDefault(), user);
        }
Exemple #10
0
        public void Remove_User_UserIsRemoved()
        {
            User user = new User()
            {
                Id = Guid.NewGuid(), FirstName = "Alex", LastName = "Black", Age = 25
            };

            UserStorageServiceMaster userStorageService = new UserStorageServiceMaster(new UserRepositoryWithState());
            UserStorageServiceSlave  slave1             = new UserStorageServiceSlave(new UserRepositoryWithState());
            UserStorageServiceSlave  slave2             = new UserStorageServiceSlave(new UserRepositoryWithState());

            userStorageService.AddSubscriber(slave1);
            userStorageService.AddSubscriber(slave2);
            userStorageService.Add(user);

            userStorageService.Remove(user);

            Assert.AreEqual(0, slave2.Count);
            Assert.AreEqual(0, slave1.Count);
        }
Exemple #11
0
        public void Add_UserLastNameConsistsOfWhiteSpaces_ExceptionThrown()
        {
            //// Arrange
            var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveServiceCollection = new List <IUserStorageService>()
            {
                slaveNode1, slaveNode2
            };

            var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
            var storageLog = new UserStorageServiceLog(storage);

            //// Act
            storageLog.Add(new User
            {
                LastName = "    "
            });

            //// Assert - [ExpectedException]
        }
Exemple #12
0
        public void Add_UserAgeIsNegative_ExceptionThrown()
        {
            //// Arrange
            var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveServiceCollection = new List <IUserStorageService>()
            {
                slaveNode1, slaveNode2
            };

            var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
            var storageLog = new UserStorageServiceLog(storage);

            ////Act
            storageLog.Add(new User
            {
                FirstName = "Alex",
                LastName  = "Johnson",
                Age       = -1
            });

            //// Assert - [ExpectedException]
        }
Exemple #13
0
        public void Remove_WithoutArguments_NothingHappen()
        {
            // Arrange
            var slaveNode1             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveNode2             = new UserStorageServiceSlave(new UserId(), new CompositeValidator());
            var slaveServiceCollection = new List <IUserStorageService>()
            {
                slaveNode1, slaveNode2
            };

            var storage    = new UserStorageServiceMaster(new UserId(), new CompositeValidator(), slaveServiceCollection);
            var storageLog = new UserStorageServiceLog(storage);

            // Act
            storageLog.Add(new User
            {
                FirstName = "Alex",
                LastName  = "Usov",
                Age       = 21,
            });

            // Assert - [ExpectedException]
        }