che sto cercando di prendere in giro il metodo di un repository come quellaMoq ReturnsAsync() con parametri
public async Task<WhitelistItem> GetByTypeValue(WhitelistType type, string value)
utilizzando Moq ReturnsAsync, in questo modo:
static List<WhitelistItem> whitelist = new List<WhitelistItem>();
var whitelistRepositoryMock = new Mock<IWhitelistRepository>();
whitelistRepositoryMock.Setup(w => w.GetByTypeValue(It.IsAny<WhitelistType>(), It.IsAny<string>()))
.ReturnsAsync((WhitelistType type, string value) =>
{
return (from item in whitelist
where item.Type == type && item.Value == value
select item).FirstOrDefault();
});
ma sto ottenendo questo errore nel line" ... ReturnsAsync ((tipo WhitelistType ...):
Impossibile convertire espressione lambda al tipo 'Model.WhitelistItem' perché esso non è un tipo delegato
WhitelistType è un Enum del genere:
public enum WhitelistType
{
UserName,
PostalCode
}
Ho cercato per ore e non ho trovato alcuna risposta al mio problema.
Eventuali indizi?
sembra è necessario specificare il tipo per gli argomenti lambda delegato (tipo WhitelistType, valore stringa) – BozoJoe
è possibile restituire il parametro passato al metodo come un tipo di ritorno asincrono, quindi istanza in ---> Task out? (stessa istanza tu) –
Choco
@Choco non sei sicuro di cosa stai provando a fare - considera la domanda come una domanda invece e mostra il codice reale (forse stai cercando 'return Task.FromResult (value)') ... –