DSP2017

DSP 2017 – nuget.download.stats – Sprint 1

Minął pierwszy tydzień Daj Się Poznać 2017. Czas na drobne podsumowanie. Projekt wystartował pomału. W repozytorium pojawił się kod, który wystawia WebAPI pozwalające na pobranie podstawowych informacji o paczkach. Trochę czasu zeszło na zabawę z Visual Studio 2017.  Niestety nie działa ono tak dobrze jak myślałem. Liczyłem na to, że w końcu będzie można pracować normalnie z testami jednostkowymi. Ale tak się nie stało. Narzędzie wspiera pisanie testów w xUnicie. Pozwala je nawet uruchomić, ale liczyłem, że po premierze Visual Studia 2017 będzie działał już w pełni Resharper, ale tak się nie stało. Kolejna nowość, którą chciałem przetestować to Live [...]

By |2017-07-22T07:49:43+02:0010 marca 2017 |Projekty|0 komentarzy

Pakiet Moq.EntityFramework.Helpers

Na blogu pojawiły się ostatnio dwa wpisy pokazujące w jaki sposób mnożna zamockować DbSet<TEntity> wykorzystując Moq: wywołania synchroniczne – Mockowanie typów DbContext oraz DbSet z wykorzystaniem Moq wywołania asynchroniczne – EntityFramework – testowanie zapytań asynchonicznych Opisane rozwiązania połączyłem w jednej bibliotece i opublikowałem jako pakiet NuGet – Moq.EntityFramework.Helpers. […]

EntityFramework – testowanie zapytań asynchonicznych

Jakiś czas temu opisałem w jaki sposób można zamockować typy DbContext przy pomocy Moq – Mockowanie typów DbContext oraz DbSet z wykorzystaniem Moq. Temat ten nie został wtedy całkowicie wyczerpany. Pozostał jeden element do opisania – zapytania asynchoroniczne. Do tego elementu chciałbym dziś wrócić. Punktem wyjście będzie poprzedni wpis – czyli mamy fragment kodu, który pozwala na zamockowanie DbSet<T>. Teraz tylko dodamy możliwość obsługi wywołań asynchronicznych. Aby to zrobić należy zaimplementować interfejs IDbAsyncQueryProvider: public class InMemoryAsyncQueryProvider<TEntity> : IDbAsyncQueryProvider { private readonly IQueryProvider innerQueryProvider; internal InMemoryAsyncQueryProvider(IQueryProvider innerQueryProvider) { this.innerQueryProvider = innerQueryProvider; } public IQueryable CreateQuery(Expression expression) { return new InMemeoryAsyncEnumerable<TEntity>(expression); } public IQueryable<TElement> CreateQuery<TElement>(Expression expression) { return new InMemeoryAsyncEnumerable<TElement>(expression); } public object Execute(Expression expression) { return this.innerQueryProvider.Execute(expression); } public TResult Execute<TResult>(Expression expression) { return this.innerQueryProvider.Execute<TResult>(expression); } public Task<object> ExecuteAsync(Expression expression, CancellationToken cancellationToken) { return Task.FromResult(Execute(expression)); [...]

By |2017-03-05T10:06:08+01:005 marca 2017 |.net|0 komentarzy

Daj Się Poznać – Krótki wstęp

Kilka dni temu wystartowała kolejna edycja konkursu Daj Się Poznać. Trochę się zastanawiałem, czy wziąć w niej udział. Główną przeszkodą był jak zwykle kalendarz – praktycznie każdy weekend do końca maja zajęty oraz dodatkowo dwa wyjazdy zagraniczne (w tym jeden dłuższy). Nigdy na wakacje nie brałem laptopa, a tym razem chyba nie będzie wyjścia. Postanowiłem jednak spróbować – tym bardziej, że namawiałem Jurka i grzechem byłoby się nie zapisać. Mam nadzieję, że uda mi się dotrwać do końca. Potraktuję to jako wyzwanie. Tyle o konkursie… Skupmy się na problemie. Już od jakiegoś czasu próbuję przerzucić się na technologie webowe. Generalnie idzie [...]

By |2017-03-04T15:04:02+01:004 marca 2017 |Projekty|0 komentarzy