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); }
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); }
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); }