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); }