public void Requires_unique_UserName_and_Email()
        {
            var mock             = new Mock <IUserAuthRepository>();
            var mockExistingUser = new UserAuth();

            mock.Expect(x => x.GetUserAuthByUserName(It.IsAny <string>()))
            .Returns(mockExistingUser);

            var service = new RegistrationService {
                RegistrationValidator = new RegistrationValidator {
                    UserAuthRepo = mock.Object
                },
                UserAuthRepo            = mock.Object,
                ServiceExceptionHandler = (req, ex) =>
                                          ValidationFeature.HandleException(new BasicResolver(), req, ex)
            };

            var request = new Registration {
                DisplayName = "DisplayName",
                Email       = "*****@*****.**",
                FirstName   = "FirstName",
                LastName    = "LastName",
                Password    = "******",
                UserName    = "******",
            };

            var response = (HttpError)service.Post(request);
            var errors   = response.GetFieldErrors();

            Assert.That(errors.Count, Is.EqualTo(2));
            Assert.That(errors[0].ErrorCode, Is.EqualTo("AlreadyExists"));
            Assert.That(errors[0].FieldName, Is.EqualTo("UserName"));
            Assert.That(errors[1].ErrorCode, Is.EqualTo("AlreadyExists"));
            Assert.That(errors[1].FieldName, Is.EqualTo("Email"));
        }
        public AuthService GetAuthService()
        {
            var authService = new AuthService {
                RequestContext          = new MockRequestContext(),
                ServiceExceptionHandler = (req, ex) =>
                                          ValidationFeature.HandleException(new BasicResolver(), req, ex)
            };

            return(authService);
        }
        public static RegistrationService GetRegistrationService(
            AbstractValidator <Registration> validator = null,
            IUserAuthRepository authRepo = null)
        {
            var requestContext = new MockRequestContext();
            var service        = new RegistrationService {
                RegistrationValidator = validator ?? new RegistrationValidator {
                    UserAuthRepo = GetStubRepo()
                },
                UserAuthRepo            = authRepo ?? GetStubRepo(),
                RequestContext          = requestContext,
                ServiceExceptionHandler = (req, ex) =>
                                          ValidationFeature.HandleException(new BasicResolver(), req, ex)
            };

            return(service);
        }
Esempio n. 4
0
 public override object HandleException(IRequestContext requestContext, T request, System.Exception ex)
 {
     return(ValidationFeature.HandleException(new BasicResolver(), request, ex));
 }
        public static WebServiceException ToWebServiceException(this ValidationResult validationResult, object requestDto, ValidationFeature feature)
        {
            var validationError = validationResult.ToException();
            var errorResponse   = DtoUtils.CreateErrorResponse(requestDto, validationError);

            if (feature?.ErrorResponseFilter != null)
            {
                errorResponse = feature.ErrorResponseFilter(validationResult, errorResponse);
            }

            var status = errorResponse.GetResponseStatus();

            var to = new WebServiceException(status.ErrorCode, validationError)
            {
                StatusCode        = 400,
                StatusDescription = status.ErrorCode,
                ResponseDto       = errorResponse,
            };

            return(to);
        }
 public override void Configure(Container container)
 {
     ValidationFeature.Init(this);
     container.Register <IAddressValidator>(new AddressValidator());
     container.RegisterValidators(typeof(CustomersValidator).Assembly);
 }
Esempio n. 7
0
            public override void Configure(Container container)
            {
                JsConfig.EmitCamelCaseNames = true;

                this.RequestFilters.Add((req, res, dto) => {
                    var requestFilter = dto as RequestFilter;
                    if (requestFilter != null)
                    {
                        res.StatusCode = requestFilter.StatusCode;
                        if (!requestFilter.HeaderName.IsNullOrEmpty())
                        {
                            res.AddHeader(requestFilter.HeaderName, requestFilter.HeaderValue);
                        }
                        res.Close();
                    }

                    var secureRequests = dto as IRequiresSession;
                    if (secureRequests != null)
                    {
                        res.ReturnAuthRequired();
                    }
                });

                this.Container.Register <IDbConnectionFactory>(c =>
                                                               new OrmLiteConnectionFactory(
                                                                   "~/App_Data/db.sqlite".MapHostAbsolutePath(),
                                                                   SqliteOrmLiteDialectProvider.Instance)
                {
                    ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
                });

                this.Container.Register <ICacheClient>(new MemoryCacheClient());
                //this.Container.Register<ICacheClient>(new BasicRedisClientManager());

                ConfigureAuth(container);

                //this.Container.Register<ISessionFactory>(
                //    c => new SessionFactory(c.Resolve<ICacheClient>()));

                var dbFactory = this.Container.Resolve <IDbConnectionFactory>();

                dbFactory.Exec(dbCmd => dbCmd.CreateTable <Movie>(true));
                ModelConfig <Movie> .Id(x => x.Title);

                Routes
                .Add <Movies>("/custom-movies", "GET")
                .Add <Movies>("/custom-movies/genres/{Genre}")
                .Add <Movie>("/custom-movies", "POST,PUT")
                .Add <Movie>("/custom-movies/{Id}")
                .Add <MqHostStats>("/mqstats");

                var resetMovies = this.Container.Resolve <ResetMoviesService>();

                resetMovies.Post(null);

                ValidationFeature.Init(this);
                container.RegisterValidators(typeof(CustomersValidator).Assembly);

                SessionFeature.Init(this);

                //var onlyEnableFeatures = Feature.All.Remove(Feature.Jsv | Feature.Soap);
                SetConfig(new EndpointHostConfig {
                    //EnableFeatures = onlyEnableFeatures,
                    DebugMode = true,                     //Show StackTraces for easier debugging
                });

                var redisManager = new BasicRedisClientManager();
                var mqHost       = new RedisMqHost(redisManager, 2, null);

                mqHost.RegisterHandler <Reverse>(this.Container.Resolve <ReverseService>().Execute);
                mqHost.Start();

                this.Container.Register((IMessageService)mqHost);
            }
 public override void Configure(Container container)
 {
     ValidationFeature.Init(this);
     container.RegisterValidators(typeof(UserValidator).Assembly);
 }