public void License_check_fetches_license_if_not_present()
        {
            // Arrange
            var   license                = new XDoc("license");
            var   newLicenseState        = LicenseStateType.COMMERCIAL;
            var   newExpiration          = DateTime.UtcNow.AddDays(1);
            var   newPermissions         = Permissions.BROWSE;
            ulong?newSiteOwnerId         = 1;
            var   checkedDate            = DateTime.UtcNow;
            var   licenseData            = new LicenseData();
            var   licenseDataWithLicense = new LicenseData().WithLicenseDocument(license);

            MockPlug.Setup(_storagePlug).At(_wikiId, "license.xml").Verb("GET").Returns(license).ExpectAtLeastOneCall();
            _licenseBLMock.Setup(x => x.DetermineLicenseState(It.Is <LicenseData>(l => l.AreSame(licenseDataWithLicense)), true, false))
            .Returns(new LicenseData().WithLicenseDocument(license)
                     .WithState(newLicenseState)
                     .WithExpiration(newExpiration)
                     .WithPermissions(newPermissions)
                     .WithSiteOwnerUserId(newSiteOwnerId)
                     .Checked(checkedDate)
                     );
            _seatingBLMock.Setup(x => x.IsSeatLicensingEnabled(license)).Returns(false);

            // Act
            var checkedLicense = _licenseController.VerifyLicenseData(licenseData, _licenseBLMock.Object, _seatingBLMock.Object);

            // Assert
            MockPlug.VerifyAll();
            _licenseBLMock.Verify(x => x.DetermineLicenseState(It.Is <LicenseData>(l => l.AreSame(licenseDataWithLicense)), true, false), Times.Once());
            Assert.AreEqual(license, checkedLicense.LicenseDoc);
            Assert.AreEqual(newLicenseState, checkedLicense.LicenseState);
            Assert.AreEqual(newExpiration, checkedLicense.LicenseExpiration);
            Assert.AreEqual(newSiteOwnerId, checkedLicense.SiteOwnerUserId);
            Assert.AreEqual(newPermissions, checkedLicense.AnonymousPermissions);
            Assert.AreEqual(checkedDate, checkedLicense.LicenseStateChecked);
        }