public void CreateALearningSession()
        {
            //Arrange
            const int sourceSystemId      = 1;
            const int destinationSystemId = 2;
            var       sut          = new LearningSessionDirector();
            var       mockRepo     = new Mock <IMappingRepository>();
            var       trainingData = new List <Mapping>
            {
                new Mapping
                {
                    Source      = "Commodity",
                    Destination = "commodity"
                }
            };

            var untrainedData = new UntrainedData
            {
                Sources = new List <string> {
                    "Variety", "Farm"
                },
                Destinations = new List <string> {
                    "variety", "farm"
                }
            };

            mockRepo.Setup(t => t.GetMappings(It.IsAny <int>(), It.IsAny <int>())).Returns(new TrainingData(trainingData));
            mockRepo.Setup(t => t.GetUntrainedData(It.IsAny <int>(), It.IsAny <int>())).Returns(untrainedData);
            var repo           = mockRepo.Object;
            var sessionBuilder = new EntitySessionBuilder(repo);

            //Act
            sut.Constructor(sessionBuilder, sourceSystemId, destinationSystemId);
            var learningSession = sessionBuilder.GetResult();
            var result          = learningSession.StartLearning();

            //Assert
            Assert.NotNull(result);
            var varietyMapping = result.First(t => t.Mapping.Source.Equals("Variety")).Mapping.Destination;

            Assert.AreEqual("variety", varietyMapping);
            var farmMapping = result.First(t => t.Mapping.Source.Equals("Farm")).Mapping.Destination;

            Assert.AreEqual("farm", farmMapping);
        }
Beispiel #2
0
        public ISession Login(string username, string password)
        {
            Control.CheckPassword(password);

            var userEntity = _userManager.SearchEntity(username);

            if (userEntity is null || !Control.CompareHashPassword(Control.HashPassword(password), userEntity.Password))
            {
                return(null);
            }
            if (userEntity.Session is null)
            {
                var sessionEntity = EntitySessionBuilder.NewBuilder()
                                    .Id(username)
                                    .SiteName(Name)
                                    .ValidUntil(_alarmClock.Now.AddSeconds(SessionExpirationInSeconds))
                                    .Build();

                _sessionManager.SaveOnDb(sessionEntity);

                return(SessionBuilder.NewSessionBuilder()
                       .SetAlarmClock(_alarmClock)
                       .SetConnectionString(_connectionString)
                       .SetSessionEntity(sessionEntity)
                       .Build());
            }

            userEntity.Session.ValidUntil = _alarmClock.Now.AddSeconds(SessionExpirationInSeconds);

            _sessionManager.SaveOnDb(userEntity.Session, true);

            return(SessionBuilder.NewSessionBuilder()
                   .SetAlarmClock(_alarmClock)
                   .SetConnectionString(_connectionString)
                   .SetSessionEntity(userEntity.Session)
                   .Build());
        }