0

Всем привет. Я пытаюсь проинициализировать поля и во всех случаях получаю такую ошибку ( System.NullReferenceException : Object reference not set to an instance of an object.), подскажите что я делаю неверно? Это мои поля:

public DateRange BookedOnDate { get; set; }

/* public class DateRange { public LocalDate Start { get; set; }

    public LocalDate End { get; set; }
} 

*/

public IncludedReservationType IncludedReservationType { get; set; } /* public enum IncludedReservationType { [EnumMember(Value = "All Reservation")] AllReservation = 1,

    [EnumMember(Value = "Arrivals")]
    Arrivals = 2
} 

*/

public IEnumerable<ReservationCategories> ReservationCategories { get; set; }

/* public enum ReservationCategories { [EnumMember(Value = "Unpaid")] UnpaidBalance = 1,

    [EnumMember(Value = &quot;Unassigned&quot;)]
    UnassignedRoom = 2,

    [EnumMember(Value = &quot;No Payment Method&quot;)]
    NoPaymentMethod = 3
} 

*/

А это я пытаюсь инициализировать, поправьте, где я ошибаюсь, пожалуйста:

            DateRange bookedOnDateRange = new DateRange();
            bookedOnDateRange.Start = new NodaTime.LocalDate(2021, 04, 02);
            bookedOnDateRange.End = new NodaTime.LocalDate(2021, 04, 04);
        BookedOnDate = bookedOnDateRange; //Object reference not set to an instance of an object

        IncludedReservationType = IncludedReservationType.AllReservation; //Object reference not set to an instance of an object

        var reservationCategories = new List&lt;ReservationCategories&gt; { 
        ReservationCategories.UnpaidBalance };
        reportRequest.AdvancedInput.ReservationCategories = reservationCategories;   //Object reference not set to an instance of an object


UPD: На данный момент я пытаюсь создать unit test для repository, где я получаю данные из БД и там же применяю необходимую фильтрацию. Для того чтобы вызвать требуемый метод, мне необходимо отправить туда входные данные, и тут я занимаюсь заполнением этих полей в ручную и затем пытаюсь вызвать метод из repository.

using Microsoft.EntityFrameworkCore;
using System;

namespace innRoad.Reports.Data.Tests.Repository { public partial class ReservationCardsRepositoryTests { private readonly TestBuilder _testBuilder = new TestBuilder();

    [Fact]
    public async Task GetReservationsWithUnPaidBalance_ShouldReturnRequiredReservations()
    {
        var clientId = xxx;
        var propertyId = yyy;

        DateRange stayedOnDateRange = new DateRange();
        stayedOnDateRange.Start = new NodaTime.LocalDate(2021, 04, 01);
        stayedOnDateRange.End = new NodaTime.LocalDate(2021, 04, 03);

        DateRange bookedOnDateRange = new DateRange();
        bookedOnDateRange.Start = new NodaTime.LocalDate(2021, 04, 02);
        bookedOnDateRange.End = new NodaTime.LocalDate(2021, 04, 04);

        var reportRequest = new ReportRequest();
        reportRequest.StayOnDate = stayedOnDateRange;
        reportRequest.AdvancedInput.BookedOnDate.Start = new NodaTime.LocalDate();
        reportRequest.AdvancedInput.BookedOnDate.End = new NodaTime.LocalDate();
        // bookedOnDateRange;
        //reportRequest.AdvancedInput.BookedOnDate.End = bookedOnDateRange.End;
        reportRequest.Input.IncludedReservationType = IncludedReservationType.AllReservation;
        reportRequest.ClientId = clientId;
        reportRequest.PropertyId = propertyId;

        var reservationCategories = new List&lt;ReservationCategories&gt; { ReservationCategories.UnpaidBalance };
        reportRequest.AdvancedInput.ReservationCategories = reservationCategories;

        var repository = _testBuilder.Build();
        var filteredByReservationCategories = repository.GetReservationBaseQueryAsync(reportRequest);
        //var baseReservations = filteredByReservationCategories;

        Assert.NotNull(filteredByReservationCategories);
    }

}

}

  • Нужно больше кода, чтобы понять. А это я пытаюсь инициализировать где этот код находится? Это мои поля: - это на самом деле свойства, а не поля. Не видно, часть чего эти совйства, и где вы это что-то создаете например с помощью new. – aepot Apr 23 '21 at 11:47
  • 1
  • Я добавил описания для понимания происходящего – Кирилл Филободченко Apr 23 '21 at 12:10
  • Код, который вы добавили отличается от кода, в котором у вас указаны ошибки. Следовательно непонятно, где там в юнит-тесте у вас крашится, и крашится ли вообще и на какой именно строке. – aepot Apr 23 '21 at 14:14

0 Answers0