public void ReceiveTest_CreateFuelIncomeOperation() { // arrange var receiver = Substitute.For <Employee>(); var subdivisionFrom = Substitute.For <Subdivision>(); subdivisionFrom.Id.Returns(1); var subdivisionTo = Substitute.For <Subdivision>(); subdivisionTo.Id.Returns(2); FuelType fuelTypeMock = Substitute.For <FuelType>(); var document = new FuelTransferDocument(); document.FuelType = fuelTypeMock; var transferOperation = Substitute.For <FuelTransferOperation>(); transferOperation.ReceiveTime = null; transferOperation.SendTime = sendTimeForReceive; transferOperation.SubdivisionFrom = subdivisionFrom; transferOperation.SubdivisionTo = subdivisionTo; transferOperation.TransferedLiters = transferedLitersForReceive; var expenseOperation = Substitute.For <FuelExpenseOperation>(); expenseOperation.FuelTransferDocument = document; expenseOperation.FuelDocument = null; expenseOperation.СreationTime = sendTimeForReceive; expenseOperation.RelatedToSubdivision = subdivisionFrom; expenseOperation.FuelLiters = transferedLitersForReceive; document.Author = Substitute.For <Employee>(); document.Driver = Substitute.For <Employee>(); document.Car = Substitute.For <Car>(); document.SendTime = sendTimeForReceive; document.CashSubdivisionFrom = subdivisionFrom; document.CashSubdivisionTo = subdivisionTo; document.Status = FuelTransferDocumentStatuses.Sent; document.TransferedLiters = transferedLitersForReceive; document.FuelTransferOperation = transferOperation; document.FuelExpenseOperation = expenseOperation; // act document.Receive(receiver); // assert AssertsAccumulator.Create .Accumulate(() => Assert.That(document.FuelIncomeOperation.FuelTransferDocument, Is.EqualTo(document))) .Accumulate(() => Assert.That(document.FuelIncomeOperation.FuelIncomeInvoiceItem, Is.Null)) .Accumulate(() => Assert.That(document.FuelIncomeOperation.RelatedToSubdivision, Is.SameAs(document.CashSubdivisionTo))) .Accumulate(() => Assert.That(document.FuelIncomeOperation.FuelLiters, Is.EqualTo(document.TransferedLiters))) .Release(); }
public void ReceiveTest__TransferDocument_without_cashier_receiver__Thrown_ArgumentNullException() { // arrange var subdivisionFrom = Substitute.For <Subdivision>(); subdivisionFrom.Id.Returns(1); var subdivisionTo = Substitute.For <Subdivision>(); subdivisionTo.Id.Returns(2); FuelType fuelTypeMock = Substitute.For <FuelType>(); var document = new FuelTransferDocument(); document.FuelType = fuelTypeMock; var transferOperation = Substitute.For <FuelTransferOperation>(); transferOperation.ReceiveTime = null; transferOperation.SendTime = sendTimeForReceive; transferOperation.SubdivisionFrom = subdivisionFrom; transferOperation.SubdivisionTo = subdivisionTo; transferOperation.TransferedLiters = transferedLitersForReceive; var expenseOperation = Substitute.For <FuelExpenseOperation>(); expenseOperation.FuelTransferDocument = document; expenseOperation.FuelDocument = null; expenseOperation.СreationTime = sendTimeForReceive; expenseOperation.RelatedToSubdivision = subdivisionFrom; expenseOperation.FuelLiters = transferedLitersForReceive; document.Author = Substitute.For <Employee>(); document.Driver = Substitute.For <Employee>(); document.Car = Substitute.For <Car>(); document.SendTime = sendTimeForReceive; document.CashSubdivisionFrom = subdivisionFrom; document.CashSubdivisionTo = subdivisionTo; document.Status = FuelTransferDocumentStatuses.Sent; document.TransferedLiters = transferedLitersForReceive; document.FuelTransferOperation = transferOperation; document.FuelExpenseOperation = expenseOperation; var parameterName = document.GetType().GetMethod(nameof(document.Receive)).GetParameters()[0].Name; // act var exception = Assert.Throws <ArgumentNullException>(() => document.Receive(null)); // assert Assert.That(exception.ParamName, Is.EqualTo(parameterName)); }
public void ReceiveTest__TransferDocument_FilledCorrectly__TransferDocument_Status_Is_Received() { // arrange var receiver = Substitute.For <Employee>(); var subdivisionFrom = Substitute.For <Subdivision>(); subdivisionFrom.Id.Returns(1); var subdivisionTo = Substitute.For <Subdivision>(); subdivisionTo.Id.Returns(2); FuelType fuelTypeMock = Substitute.For <FuelType>(); var document = new FuelTransferDocument(); document.FuelType = fuelTypeMock; var transferOperation = Substitute.For <FuelTransferOperation>(); transferOperation.ReceiveTime = null; transferOperation.SendTime = sendTimeForReceive; transferOperation.SubdivisionFrom = subdivisionFrom; transferOperation.SubdivisionTo = subdivisionTo; transferOperation.TransferedLiters = transferedLitersForReceive; var expenseOperation = Substitute.For <FuelExpenseOperation>(); expenseOperation.FuelTransferDocument = document; expenseOperation.FuelDocument = null; expenseOperation.СreationTime = sendTimeForReceive; expenseOperation.RelatedToSubdivision = subdivisionFrom; expenseOperation.FuelLiters = transferedLitersForReceive; document.Author = Substitute.For <Employee>(); document.Driver = Substitute.For <Employee>(); document.Car = Substitute.For <Car>(); document.SendTime = sendTimeForReceive; document.CashSubdivisionFrom = subdivisionFrom; document.CashSubdivisionTo = subdivisionTo; document.Status = FuelTransferDocumentStatuses.Sent; document.TransferedLiters = transferedLitersForReceive; document.FuelTransferOperation = transferOperation; document.FuelExpenseOperation = expenseOperation; // act document.Receive(receiver); // assert Assert.IsTrue(document.Status == FuelTransferDocumentStatuses.Received); }
public void ReceiveTest__TransferDocument_FuelTransferOperation_ReceiveTime_already_exists__Thrown_InvalidOperationException() { // arrange var receiver = Substitute.For <Employee>(); var subdivisionFrom = Substitute.For <Subdivision>(); subdivisionFrom.Id.Returns(1); var subdivisionTo = Substitute.For <Subdivision>(); subdivisionTo.Id.Returns(2); FuelType fuelTypeMock = Substitute.For <FuelType>(); var document = new FuelTransferDocument(); document.FuelType = fuelTypeMock; var transferOperation = Substitute.For <FuelTransferOperation>(); transferOperation.ReceiveTime = null; transferOperation.SendTime = sendTimeForReceive; transferOperation.SubdivisionFrom = subdivisionFrom; transferOperation.SubdivisionTo = subdivisionTo; transferOperation.TransferedLiters = transferedLitersForReceive; var expenseOperation = Substitute.For <FuelExpenseOperation>(); expenseOperation.FuelTransferDocument = document; expenseOperation.FuelDocument = null; expenseOperation.СreationTime = sendTimeForReceive; expenseOperation.RelatedToSubdivision = subdivisionFrom; expenseOperation.FuelLiters = transferedLitersForReceive; document.Author = Substitute.For <Employee>(); document.Driver = Substitute.For <Employee>(); document.Car = Substitute.For <Car>(); document.SendTime = sendTimeForReceive; document.CashSubdivisionFrom = subdivisionFrom; document.CashSubdivisionTo = subdivisionTo; document.Status = FuelTransferDocumentStatuses.Sent; document.TransferedLiters = transferedLitersForReceive; document.FuelTransferOperation = transferOperation; document.FuelExpenseOperation = expenseOperation; document.FuelTransferOperation.ReceiveTime = DateTime.Now; // act, assert var exception = Assert.Throws <InvalidOperationException>(() => document.Receive(receiver)); }