public void GetAddresses_Pass()
        {
            if (!m_adapters.Any())
            {
                return;
            }

            IEnumerable <string> addresses = m_sut.GetAddresses(m_adapters.First().Id);

            Assert.NotNull(addresses);
        }
        public void GetAddresses_AddNew_CleanCache()
        {
            m_sut.GetAddresses("123");
            m_sut.GetAddresses("123");

            m_sut.AddAddress("123", "xxx");
            m_mock.Verify(x => x.GetAddresses("123"), Times.Once);

            m_sut.GetAddresses("123");
            m_sut.GetAddresses("123");

            m_mock.Verify(x => x.GetAddresses("123"), Times.Exactly(2));
        }
Beispiel #3
0
        public IActionResult GetAdapterAddresses(string adapterId)
        {
            try {
                Log.Logger.Information("API: GetAdapterAddresses");

                var adapters = m_adapterService.GetAddresses(adapterId);

                Log.Logger.Debug($"API: GetAdapterAddresses.Result: {JsonConvert.SerializeObject( adapters )}");

                return(Ok(adapters));
            } catch (KeyNotFoundException e) {
                Log.Logger.Error(e, $"API: GetAdapterAddresses.NotFound: {e.Message}");
                return(NotFound("network adapter not found"));
            } catch (Exception e) {
                Log.Logger.Error(e, $"API: GetAdapterAddresses.Exception: {e.Message}");
                throw;
            }
        }
Beispiel #4
0
        IEnumerable <string> IAdapterService.GetAddresses(string adapterId)
        {
            string key = GetAddressesKey(adapterId);

            if (m_cache.TryGetValue(key, out object cacheValue))
            {
                if (cacheValue is IEnumerable <string> cachedAddresses)
                {
                    return(cachedAddresses);
                }

                m_cache.Remove(key);
            }

            var addresses = m_adapterService.GetAddresses(adapterId).ToArray();

            m_cache.Set(key, addresses, m_cacheEntryOptions);

            return(addresses);
        }