org.json4s.ext.EnumNameSerializer Scala Examples
The following examples show how to use org.json4s.ext.EnumNameSerializer.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: WhitelistIndexFieldConfigurationSpec.scala From haystack-traces with Apache License 2.0 | 5 votes |
package com.expedia.www.haystack.trace.commons.unit import com.expedia.www.haystack.trace.commons.config.entities.{IndexFieldType, WhiteListIndexFields, WhitelistIndexField, WhitelistIndexFieldConfiguration} import org.json4s.ext.EnumNameSerializer import org.json4s.jackson.Serialization import org.json4s.{DefaultFormats, Formats} import org.scalatest.{Entry, FunSpec, Matchers} import scala.collection.JavaConverters._ class WhitelistIndexFieldConfigurationSpec extends FunSpec with Matchers { protected implicit val formats: Formats = DefaultFormats + new EnumNameSerializer(IndexFieldType) describe("whitelist field configuration") { it("an empty configuration should return whitelist fields as empty") { val config = WhitelistIndexFieldConfiguration() config.indexFieldMap shouldBe 'empty config.whitelistIndexFields shouldBe 'empty } it("a loaded configuration should return the non empty whitelist fields") { val whitelistField_1 = WhitelistIndexField(name = "role", `type` = IndexFieldType.string, enableRangeQuery = true) val whitelistField_2 = WhitelistIndexField(name = "Errorcode", `type` = IndexFieldType.long) val config = WhitelistIndexFieldConfiguration() val cfgJsonData = Serialization.write(WhiteListIndexFields(List(whitelistField_1, whitelistField_2))) // reload config.onReload(cfgJsonData) config.whitelistIndexFields.map(_.name) should contain allOf("role", "errorcode") config.whitelistIndexFields.filter(r => r.name == "role").head.enableRangeQuery shouldBe true config.indexFieldMap.size() shouldBe 2 config.indexFieldMap.keys().asScala.toList should contain allOf("role", "errorcode") config.globalTraceContextIndexFieldNames.size shouldBe 0 val whitelistField_3 = WhitelistIndexField(name = "status", `type` = IndexFieldType.string, aliases = Set("_status", "HTTP-STATUS")) val whitelistField_4 = WhitelistIndexField(name = "something", `type` = IndexFieldType.long, searchContext = "trace") val newCfgJsonData = Serialization.write(WhiteListIndexFields(List(whitelistField_1, whitelistField_3, whitelistField_4))) config.onReload(newCfgJsonData) config.whitelistIndexFields.size shouldBe 5 config.whitelistIndexFields.map(_.name).toSet should contain allOf("status", "something", "role") config.indexFieldMap.size shouldBe 5 config.indexFieldMap.keys().asScala.toList should contain allOf("status", "something", "role", "http-status", "_status") config.onReload(newCfgJsonData) config.whitelistIndexFields.size shouldBe 5 config.whitelistIndexFields.map(_.name).toSet should contain allOf("status", "something", "role") config.indexFieldMap.size() shouldBe 5 config.indexFieldMap.keys().asScala.toList should contain allOf("status", "something", "role", "http-status", "_status") config.indexFieldMap.get("http-status").name shouldEqual "status" config.indexFieldMap.get("_status").name shouldEqual "status" config.globalTraceContextIndexFieldNames.size shouldBe 1 config.globalTraceContextIndexFieldNames.head shouldEqual "something" } } }
Example 2
Source File: ElasticSearchReadResultListenerSpec.scala From haystack-traces with Apache License 2.0 | 5 votes |
package com.expedia.www.haystack.trace.reader.unit.stores.readers.es.query import com.codahale.metrics.{Meter, Timer} import com.expedia.open.tracing.api.{Field, TracesSearchRequest} import com.expedia.www.haystack.trace.commons.config.entities.{IndexFieldType, WhitelistIndexFieldConfiguration} import com.expedia.www.haystack.trace.reader.config.entities.SpansIndexConfiguration import com.expedia.www.haystack.trace.reader.exceptions.ElasticSearchClientError import com.expedia.www.haystack.trace.reader.stores.readers.es.ElasticSearchReadResultListener import com.expedia.www.haystack.trace.reader.stores.readers.es.query.TraceSearchQueryGenerator import com.expedia.www.haystack.trace.reader.unit.BaseUnitTestSpec import io.searchbox.core.SearchResult import org.easymock.EasyMock import org.json4s.ext.EnumNameSerializer import org.json4s.{DefaultFormats, Formats} import scala.concurrent.Promise class ElasticSearchReadResultListenerSpec extends BaseUnitTestSpec { protected implicit val formats: Formats = DefaultFormats + new EnumNameSerializer(IndexFieldType) val ES_INDEX_HOUR_BUCKET = 6 val ES_INDEX_HOUR_TTL = 72 private val spansIndexConfiguration = SpansIndexConfiguration( indexNamePrefix = "haystack-traces", indexType = "spans", indexHourTtl = ES_INDEX_HOUR_TTL, indexHourBucket = ES_INDEX_HOUR_BUCKET, useRootDocumentStartTime = false) private val searchRequest = { val generator = new TraceSearchQueryGenerator(spansIndexConfiguration, "spans", WhitelistIndexFieldConfiguration()) val field = Field.newBuilder().setName("serviceName").setValue("expweb").build() generator.generate(TracesSearchRequest.newBuilder().setStartTime(1510469157572000l).setEndTime(1510469161172000l).setLimit(40).addFields(field).build(), true) } describe("ElasticSearch Read Result Listener") { it("should invoke successful promise with search result") { val promise = mock[Promise[SearchResult]] val timer = mock[Timer.Context] val failureMeter = mock[Meter] val searchResult = mock[SearchResult] expecting { timer.close().once() searchResult.getResponseCode.andReturn(200).atLeastOnce() promise.success(searchResult).andReturn(promise).once() } whenExecuting(promise, timer, failureMeter, searchResult) { val listener = new ElasticSearchReadResultListener(searchRequest, promise, timer, failureMeter) listener.completed(searchResult) } } it("should invoke failed promise with exception object if response code is not 2xx ") { val promise = mock[Promise[SearchResult]] val timer = mock[Timer.Context] val failureMeter = mock[Meter] val searchResult = mock[SearchResult] expecting { timer.close().once() searchResult.getResponseCode.andReturn(500).atLeastOnce() searchResult.getJsonString.andReturn("json-string").times(2) failureMeter.mark() promise.failure(EasyMock.anyObject(classOf[ElasticSearchClientError])).andReturn(promise).once() } whenExecuting(promise, timer, failureMeter, searchResult) { val listener = new ElasticSearchReadResultListener(searchRequest, promise, timer, failureMeter) listener.completed(searchResult) } } it("should invoke failed promise with exception object if failure is generated") { val promise = mock[Promise[SearchResult]] val timer = mock[Timer.Context] val failureMeter = mock[Meter] val expectedException = new Exception expecting { timer.close().once() failureMeter.mark() promise.failure(expectedException).andReturn(promise).once() } whenExecuting(promise, timer, failureMeter) { val listener = new ElasticSearchReadResultListener(searchRequest, promise, timer, failureMeter) listener.failed(expectedException) } } } }
Example 3
Source File: EnumFormats.scala From twitter4s with Apache License 2.0 | 5 votes |
package com.danielasfregola.twitter4s.http.serializers import com.danielasfregola.twitter4s.entities.enums._ import org.json4s.Formats import org.json4s.ext.EnumNameSerializer private[twitter4s] object EnumFormats extends FormatsComposer { override def compose(f: Formats): Formats = f + new EnumNameSerializer(Alignment) + new EnumNameSerializer(ContributorType) + new EnumNameSerializer(DisconnectionCode) + new EnumNameSerializer(SimpleEventCode) + new EnumNameSerializer(TweetEventCode) + new EnumNameSerializer(TwitterListEventCode) + new EnumNameSerializer(Granularity) + new EnumNameSerializer(Hour) + new EnumNameSerializer(Language) + new EnumNameSerializer(Measure) + new EnumNameSerializer(Mode) + new EnumNameSerializer(Resource) + new EnumNameSerializer(ResultType) + new EnumNameSerializer(TimeZone) + new EnumNameSerializer(WidgetType) + new EnumNameSerializer(WithFilter) }