public Post_When_Existing_Should()
            {
                dateTimeCreatorMock = new Mock <IDateTimeCreator>();
                expected            = new ActivationCodeToAdd
                {
                    PhoneNumber    = "07930123456",
                    ActivationCode = "BAC132"
                };
                var existing = new ActivationCode
                {
                    Id          = 101,
                    PhoneNumber = "07930123456",
                    Code        = "ABC0405"
                };
                var expectedDateTime = new DateTime(2001, 5, 4);

                dataStoreMock = new Mock <IDataStore>();
                dataStoreMock.Setup(x => x.GetActivationCode(expected.PhoneNumber))
                .Returns(existing);
                dataStoreMock.Setup(x => x.UpdateActivationCode(
                                        It.Is <ActivationCode>(y => y.Id == existing.Id &&
                                                               y.PhoneNumber == expected.PhoneNumber &&
                                                               y.Code == expected.ActivationCode &&
                                                               y.UpdatedAt == expectedDateTime)))
                .Returns(true);
                dateTimeCreatorMock.Setup(x => x.Create())
                .Returns(expectedDateTime);
                loggerMock = new Mock <ILogger <ActivationCodesController> >();

                sut = new ActivationCodesController(loggerMock.Object, dataStoreMock.Object, dateTimeCreatorMock.Object);
            }
            public Post_When_Inserting_Should()
            {
                dateTimeCreatorMock = new Mock <IDateTimeCreator>();

                expected = new ActivationCodeToAdd
                {
                    PhoneNumber    = "07930123456",
                    ActivationCode = "BAC132"
                };
                dataStoreMock = new Mock <IDataStore>();
                dataStoreMock.Setup(x => x.InsertActivationCode(
                                        It.Is <ActivationCode>(y => y.PhoneNumber == expected.PhoneNumber &&
                                                               y.Code == expected.ActivationCode)))
                .Returns(true);
                loggerMock = new Mock <ILogger <ActivationCodesController> >();

                sut = new ActivationCodesController(loggerMock.Object, dataStoreMock.Object, dateTimeCreatorMock.Object);
            }