Skip to main content
Code snippet isn't appropriate here since this isn't JavaScript/HTML/CSS
Source Link
Patrick Quirk
  • 23.9k
  • 2
  • 60
  • 91

public class PhraseRepository : RepositoryBase<Phrase>, IPhraseRepository
        {
            public PhraseRepository(IDatabaseFactory databaseFactory)
                : base(databaseFactory)
            {
            }

            public string GetPhrase(string phraseCode)
            {
                return this.GetMany(p => p.PhraseCode == phraseCode).First().Descript;
            }

        }

        public interface IPhraseRepository : IRepository<Phrase>
        {
            string GetPhrase(string phraseCode);
        }
     }

public class CLPRiskPhraseService : ICLPRiskPhraseService
    {
        private readonly IPhraseRepository phraseRepository;
      
        public string GetPhrase(string phraseCode)
        {
            return phraseRepository.GetPhrase(phraseCode);
        }
}


        [Test]
        public void GetPhrase()
        {
            var phrases = new FakePhraseData().GetPhrases();
            phraseRepository.Setup(m => m.GetMany(It.IsAny<Expression<Func<Phrase, bool>>>())).Returns(phrases);
           
            var result = phraseRepository.Object.GetPhrase("H300");
            // Assert
            NUnit.Framework.Assert.IsNotNull(phraseRepository.Object);
            NUnit.Framework.Assert.AreEqual("Description0", result);
        }

Thanks

public class PhraseRepository : RepositoryBase<Phrase>, IPhraseRepository
{
    public PhraseRepository(IDatabaseFactory databaseFactory)
        : base(databaseFactory)
    {
    }

    public string GetPhrase(string phraseCode)
    {
        return this.GetMany(p => p.PhraseCode == phraseCode).First().Descript;
    }

}

public interface IPhraseRepository : IRepository<Phrase>
{
    string GetPhrase(string phraseCode);
}

public class CLPRiskPhraseService : ICLPRiskPhraseService
{
    private readonly IPhraseRepository phraseRepository;
  
    public string GetPhrase(string phraseCode)
    {
        return phraseRepository.GetPhrase(phraseCode);
    }
}


[Test]
public void GetPhrase()
{
    var phrases = new FakePhraseData().GetPhrases();
    phraseRepository.Setup(m => m.GetMany(It.IsAny<Expression<Func<Phrase, bool>>>())).Returns(phrases);
   
    var result = phraseRepository.Object.GetPhrase("H300");
    // Assert
    NUnit.Framework.Assert.IsNotNull(phraseRepository.Object);
    NUnit.Framework.Assert.AreEqual("Description0", result);
}

public class PhraseRepository : RepositoryBase<Phrase>, IPhraseRepository
        {
            public PhraseRepository(IDatabaseFactory databaseFactory)
                : base(databaseFactory)
            {
            }

            public string GetPhrase(string phraseCode)
            {
                return this.GetMany(p => p.PhraseCode == phraseCode).First().Descript;
            }

        }

        public interface IPhraseRepository : IRepository<Phrase>
        {
            string GetPhrase(string phraseCode);
        }
     }

public class CLPRiskPhraseService : ICLPRiskPhraseService
    {
        private readonly IPhraseRepository phraseRepository;
      
        public string GetPhrase(string phraseCode)
        {
            return phraseRepository.GetPhrase(phraseCode);
        }
}


        [Test]
        public void GetPhrase()
        {
            var phrases = new FakePhraseData().GetPhrases();
            phraseRepository.Setup(m => m.GetMany(It.IsAny<Expression<Func<Phrase, bool>>>())).Returns(phrases);
           
            var result = phraseRepository.Object.GetPhrase("H300");
            // Assert
            NUnit.Framework.Assert.IsNotNull(phraseRepository.Object);
            NUnit.Framework.Assert.AreEqual("Description0", result);
        }

Thanks

public class PhraseRepository : RepositoryBase<Phrase>, IPhraseRepository
{
    public PhraseRepository(IDatabaseFactory databaseFactory)
        : base(databaseFactory)
    {
    }

    public string GetPhrase(string phraseCode)
    {
        return this.GetMany(p => p.PhraseCode == phraseCode).First().Descript;
    }

}

public interface IPhraseRepository : IRepository<Phrase>
{
    string GetPhrase(string phraseCode);
}

public class CLPRiskPhraseService : ICLPRiskPhraseService
{
    private readonly IPhraseRepository phraseRepository;
  
    public string GetPhrase(string phraseCode)
    {
        return phraseRepository.GetPhrase(phraseCode);
    }
}


[Test]
public void GetPhrase()
{
    var phrases = new FakePhraseData().GetPhrases();
    phraseRepository.Setup(m => m.GetMany(It.IsAny<Expression<Func<Phrase, bool>>>())).Returns(phrases);
   
    var result = phraseRepository.Object.GetPhrase("H300");
    // Assert
    NUnit.Framework.Assert.IsNotNull(phraseRepository.Object);
    NUnit.Framework.Assert.AreEqual("Description0", result);
}
Source Link

NUnit - Mock Repository and test with dummy data

I'm trying to establish a way of unit testing my service layer (& repositories) using some dummy data. I've seen examples of this before with Generic Repositories but I'm struggling to get something working whilst using a DatabaseFactory.

When I call the GetPhrase method from repository.Object I just get null back everytime.

I'm using NUnit and Moq. Any pointers on where i'm going wrong would be appreciated , or let me know if i'm better off going down a different road e.g. Connecting to a local db for tests (SQL CE etc)

Here are the main components of the code:

public class PhraseRepository : RepositoryBase<Phrase>, IPhraseRepository
        {
            public PhraseRepository(IDatabaseFactory databaseFactory)
                : base(databaseFactory)
            {
            }

            public string GetPhrase(string phraseCode)
            {
                return this.GetMany(p => p.PhraseCode == phraseCode).First().Descript;
            }

        }

        public interface IPhraseRepository : IRepository<Phrase>
        {
            string GetPhrase(string phraseCode);
        }
     }

public class CLPRiskPhraseService : ICLPRiskPhraseService
    {
        private readonly IPhraseRepository phraseRepository;
      
        public string GetPhrase(string phraseCode)
        {
            return phraseRepository.GetPhrase(phraseCode);
        }
}


        [Test]
        public void GetPhrase()
        {
            var phrases = new FakePhraseData().GetPhrases();
            phraseRepository.Setup(m => m.GetMany(It.IsAny<Expression<Func<Phrase, bool>>>())).Returns(phrases);
           
            var result = phraseRepository.Object.GetPhrase("H300");
            // Assert
            NUnit.Framework.Assert.IsNotNull(phraseRepository.Object);
            NUnit.Framework.Assert.AreEqual("Description0", result);
        }

Thanks