Ejemplo n.º 1
0
 public PlayController(
     ILaberBot bot,
     WebServiceOptions options,
     IAudioPlayer player,
     ISoundRepository soundRepository)
 {
     _bot             = bot;
     _options         = options;
     _player          = player;
     _soundRepository = soundRepository;
 }
    public async Task <TResponse> SearchClaimAsync <TResponse>(WebServiceOptions options)
    {
        TWebService webService = serviceFactory.Create <TWebService>(options.URL);
        TUser       user       = createUser(
            await encryptValueAsync(webService, options.UserName),
            await encryptValueAsync(webService, options.Password)
            );
        Func <TWebServiceClient, TUser, Task <TResponse> > claimSearchAsync =
            ExpressionHelpers.CreateClaimSearchDelegate <TWebServiceClient, TUser, TResponse>();
        TResponse response = await claimSearchAsync.Invoke(client.Value, user);

        return(response);
    }
    public async Task Should_ClaimSearchAsync()
    {
        //Arrange
        var service = Mock.Of <IWebService>();

        Mock.Get(service)
        .Setup(_ => _.EncryptValueAsync(It.IsAny <string>()))
        .ReturnsAsync((string s) => s);
        var serviceFactory = Mock.Of <IWebServiceFactory>();

        Mock.Get(serviceFactory)
        .Setup(_ => _.Create <IWebService>(It.IsAny <string>()))
        .Returns(service);
        var clientFactory = Mock.Of <IClientFactory>();

        Mock.Get(clientFactory)
        .Setup(_ => _.Create <WebServiceWRGClient>())
        .Returns(() => new WebServiceWRGClient());
        string url      = "url";
        string username = "******";
        string password = "******";
        var    options  = new WebServiceOptions {
            URL      = url,
            UserName = username,
            Password = password
        };
        var webService = new WebService <WebServiceWRGClient, IWebService, User1>(serviceFactory, clientFactory);
        //Act
        var actual = await webService.SearchClaimAsync <WebServiceResult>(options);

        //Assert
        //Mock.Get(serviceFactory).Verify(_ => _.Create<IService1>(url));
        //Mock.Get(service).Verify(_ => _.EncryptValue(username));
        //Mock.Get(service).Verify(_ => _.EncryptValue(password));
        //Mock.Get(clientFactory).Verify(_ => _.Create<Client1>());
        actual.Should().NotBeNull();
    }